UILabel 相關使用方法間距、段落、文字顏色(詳細)

開發和設計就像一對冤家,“抱”了一路。。。。。

一個lab控件,設計想到了很多, 於是就有了各種狀態的Lab,居上,調整間距,不同顏色巴拉巴拉……..

先來第一個:

  • UILabel text 行間距
UIFont *font = [UIFont boldSystemFontOfSize:17];
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc]init];
//設置行間距
paragraph.lineSpacing    = 5;
paragraph.lineBreakMode  = NSLineBreakByWordWrapping;

NSDictionary *attributes = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraph};

CGSize sizeRect = [restaurantName boundingRectWithSize:CGSizeMake(ScreenWidth, 300) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;

_lab.frame          = CGRectMake(0,0,sizeRect.width,sizeRect.height);
_lab.numberOfLines  = 0;
_lab.font           = font;

第二彈

  • text居頂顯示
    有時候Label的高度確定,但是內容讓居頂,來 ~ 看代碼:
    //首先要計算出text文本的大小,居頂,設置origin.y爲lab的origin.y
    CGRect topRect = [self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines];
    topRect.origin.y = bounds.origin.y;
    //隨後在繪製text的方法裏重新繪製text文本位置
    -(void)drawTextInRect:(CGRect)rect

號外:創建一個繼承於UILabel的子類,重載drawTextInRect,super調用即可。

第三彈

  • UILabel上顯示不同顏色
    如圖:
    圈中部分是一個lab,當然了,也是自適應的

    其實UILabel上的關鍵字變顏色也可以這麼做,上代碼,range可隨意組合:

         //設置字符串中 ‘任何營養’ 染成紅色
        NSString *beforeStr                            = @"任何營養健身的問題,營養師都是詳細解答。";

        //這個range你可以改成某個關鍵字替換掉NSMakeRange
        NSRange range                                  = [beforeStr rangeOfString:@"任何營養"];

        NSMutableAttributedString *str                 = [[NSMutableAttributedString alloc]initWithString:beforeStr];
        [str addAttribute:NSForegroundColorAttributeName value:COLOR_S_RED range:NSMakeRange(0, 4)];
        label.attributedText = str;

效果如下:

這裏寫圖片描述

  • UILabel上顯示不同font大小
    不得不說3個字本來就是一個lab加上去就行了,定睛一看,哦,字的大小不一樣哦。那不還是一個Lab嗎 ? sei讓它強大呢 ~ 來來來,瞅瞅吧 ~
        //設置不同字體
        NSString *heatStr                  = [NSString stringWithFormat:@"%@ 大卡",singleMealModel.heat];
        NSMutableAttributedString *heatstr = [[NSMutableAttributedString alloc]initWithString:heatStr];
        [heatstr addAttribute:NSFontAttributeName value:FONT_S_13 range:NSMakeRange(singleMealModel.heat.length,3)];
        cell.standardLab.attributedText    = heatstr;

效果圖如下,明白了嗎 ?

這裏寫圖片描述

哦了 ~ 週末愉快 ! 明天繼續 !

發佈了26 篇原創文章 · 獲贊 17 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章