UILabel詳解

NSMutableAttributedString *textLabelStr = [[NSMutableAttributedString alloc] initWithString:@"設置屬性文本"];
    [textLabelStr setAttributes:@{NSForegroundColorAttributeName :[UIColor lightGrayColor], NSFontAttributeName :[UIFont systemFontOfSize:18]} range:NSMakeRange(2,3)];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 250, 100)];
    [self.view addSubview:label];

    // 設置文本內容
    //label.text = @"設置文本";
    label.text = @"設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本設置文本";
    // 設置屬性文本
    //label.attributedText = textLabelStr;

    // 最簡單的方式實現豎排文字顯示 每個文字加一個換行符
    //label.text = @"請\n豎\n直\n方\n向\n排\n列";
    //label.numberOfLines = [label.text length];

    // 設置文本字體和大小 (默認17)
    label.font = [UIFont systemFontOfSize:20];              // 一般
    label.font = [UIFont boldSystemFontOfSize:20];          // 加粗
    label.font = [UIFont italicSystemFontOfSize:20];        // 斜體 (不支持中文)
    label.font = [UIFont fontWithName:@"Arial" size:20];    // 指定字體

    // 查看ios7中的所有字體名字
    for (NSString* fontName in [UIFont familyNames]) {
        NSLog(@"%@",fontName);
    }

    // 設置文本顏色
    // 顏色默認的是nil 但是你不設置顏色的話 打印字體顏色的時候會出現UIDeviceWhiteColorSpace 0 1
    // 這個顏色是[UIColor colorWithWhite:0 alpha:1] 所以默認字體顏色是黑色
    label.textColor = [UIColor purpleColor];

    // 設置背景顏色 (默認透明色)
    label.backgroundColor = [UIColor brownColor];

    // 設置文本對齊方式
    label.textAlignment = NSTextAlignmentLeft;
    /*
     UITextAlignmentLeft        左對齊 (默認)
     UITextAlignmentCenter      居中對齊
     UITextAlignmentRight       右對齊
     NSTextAlignmentJustified   左右兩邊都對齊 一個段落的最後一行是natural-aligned
     NSTextAlignmentNatural     顯示腳本的默認對齊方式
    */

    // 設置文本最多顯示行數,設0表示沒有最大行數限制 (默認1)
    label.numberOfLines = 1;

    // 設置字體大小適應Label寬度
    label.adjustsFontSizeToFitWidth = YES;

    // 設置文字過長時的顯示格式 numberofLines必須設置爲0,纔有效果
    // 注意:設置 adjustsFontSizeToFitWidth 爲 YES 後,2、3、4、5 設置無效果
    label.lineBreakMode = NSLineBreakByTruncatingHead;
    /*
     1.NSLineBreakByCharWrapping          以字符爲顯示單位顯示,後面部分省略不顯示
     2.NSLineBreakByClipping              剪切與文本寬度相同的內容長度,後半部分被刪除
     3.NSLineBreakByTruncatingHead        最後一行前面部分文字以……方式省略,顯示尾部文字內容
     4.NSLineBreakByTruncatingMiddle      最後一行中間的內容以……方式省略,顯示頭尾的文字內容
     5.NSLineBreakByTruncatingTail        結尾部分的內容以……方式省略,顯示頭的文字內容 (默認)
     6.NSLineBreakByWordWrapping          以單詞爲顯示單位顯示,後面部分省略不顯示
     */

    // 設置陰影顏色
    label.shadowColor = [UIColor blueColor];
    // 設置陰影偏移量 正負代表方向  數值代表距離的點數
    label.shadowOffset = CGSizeMake(5, 5);

    // 設置文本是否高亮
    label.highlighted = YES;
    // 設置文本高亮顯示顏色   必須先設置 highlighted 爲YES
    label.highlightedTextColor = [UIColor yellowColor];

    // baselineAdjustment這個值控制文本的基線位置,只有文本行數爲1是有效 adjustsFontSizeToFitWidth屬性設置爲YES
    label.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
    /*
     UIBaselineAdjustmentAlignBaselines     文本最上端與label中線對齊 (默認)
     UIBaselineAdjustmentAlignCenters       文本中線與label中線對齊
     UIBaselineAdjustmentNone               文本最低端與label中線對齊
     */

    // 設置文本最小顯示字體 (默認0.0) 需要設置 adjustsFontSizeToFitWidth 爲 YES
    // minimumFontSize 在 IOS 6後不能使用
    // 指定一個乘數 這個乘數是與當前的字體相乘計算出字體大小  1.0表示當前字體大小爲最小的字體大小  0.0表示字體可以無限縮小
    label.minimumScaleFactor = 0.7;

    // 設置label中的文字是否可變 (默認YES) 設NO將會使文本字體顏色變灰 表示它沒有激活
    label.enabled = YES;

    // 設置是否能與用戶進行交互 (默認NO) 用於添加手勢
    label.userInteractionEnabled = NO;

    // 設置多行文本的最大寬度 用於自動佈局
    // 在自動佈局添加約束中,若文本超過了指定的最大寬度的時候 文本會另起一行 從而增加label高度
    label.preferredMaxLayoutWidth = 20;

    // 此屬性是iOS 9纔出現 暫未研究
    label.allowsDefaultTighteningForTruncation = YES;
發佈了44 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章