UILabel 屬性詳解與使用心得

UILabel作為一個展示文字的控件,功能比較強大淮椰,可以展示普通文本横缔,富文本,多行文字己肮。

1.初始化UILabel

UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 50)];
titleLabel.text = @"test";

2.屬性介紹

//設(shè)置label的文字

titleLabel.text = @"我的測試文字";

//設(shè)置label的字體

titleLabel.font = [UIFont systemFontOfSize:12];

//設(shè)置label的顏色

//default is nil (text draws black)
 titleLabel.textColor = [UIColor grayColor];

//設(shè)置label的陰影顏色和偏移

titleLabel.shadowColor = [UIColor redColor]; titleLabel.shadowOffset = CGSizeMake(10, 10);

//設(shè)置文字對齊方式

titleLabel.textAlignment = UITextAlignmentLeft;//文字靠左
titleLabel.textAlignment = UITextAlignmentCenter;//文字居中
titleLabel.textAlignment = UITextAlignmentRight;//文字靠右

//設(shè)置文案的換行模式

titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;//截取末尾
typedef NS_ENUM(NSInteger, NSLineBreakMode) {
    NSLineBreakByWordWrapping = 0,      // Wrap at word boundaries, default
    NSLineBreakByCharWrapping,      // Wrap at character boundaries
    NSLineBreakByClipping,      // Simply clip
    NSLineBreakByTruncatingHead,    // Truncate at head of line: "...wxyz" //截取頭部
    NSLineBreakByTruncatingTail,    // Truncate at tail of line: "abcd..." 截取末尾
    NSLineBreakByTruncatingMiddle   // Truncate middle of line:  "ab...yz" 截取中間
} 

//設(shè)置富文本

titleLabel.attributedText = [[NSAttributedString alloc] initWithString:@"我是富文本"];

//設(shè)置高亮狀態(tài)相關(guān)

 titleLabel.highlightedTextColor = [UIColor greenColor];
 titleLabel.highlighted = YES;

//label 交互以及是否可用

//默認(rèn)不能交互士袄,如添加手勢不生效
 titleLabel.userInteractionEnabled = YES;
 titleLabel.enabled = YES;

//設(shè)置label顯示的行數(shù)

//0表示顯示任意行
titleLabel.numberOfLines = 0;

//設(shè)置label是否自適應(yīng)字體大小

titleLabel.adjustsFontSizeToFitWidth = YES;

//設(shè)置label基線對齊方式(當(dāng)adjustsFontSizeToFitWidth= YES時生效)
//默認(rèn)對齊方式

typedef enum {    
      UIBaselineAdjustmentAlignBaselines,   //默認(rèn)值文本最上端與label中間線對齊 
      UIBaselineAdjustmentAlignCenters,   //text中間與label中間線對齊
      UIBaselineAdjustmentNone,    //text最低端與label中間線對齊
 } UIBaselineAdjustment;    

titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;

//設(shè)置最小縮放字體(當(dāng)adjustsFontSizeToFitWidth= YES,指定了最小縮放字體)

titleLabel.minimumScaleFactor = 20;

//label截斷是否緊縮文字

//The default value of this property is NO.
titleLabel.allowsDefaultTighteningForTruncation = YES;

3.使用技巧

1.設(shè)置文字的時候,通過 [titleLabel sizeToFit]可以自適應(yīng)文字谎僻。
NOTE:在sizeToFit之前需要指定label的寬度娄柳。
2.當(dāng)需要根據(jù)字體和文字大小自適應(yīng)的時候,可以使用adjustsFontSizeToFitWidth屬性艘绍,進行給定寬高適配赤拒。
NOTE:默認(rèn)文字頂部和中心對齊,可以設(shè)置titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines; 解決诱鞠。
也可以使用NSString的方法,計算出適應(yīng)字體的大小挎挖,不過這個接口在iOS7廢棄了。

//通過指定字體航夺,設(shè)置最小字體蕉朵,寬度,以及換行模式阳掐,返回對應(yīng)的字體始衅。
    CGFloat fontSizeThatFits; 
   [tempString sizeWithFont: [UIFont systemFontOfSize:12] minFontSize:20  actualFontSize:&fontSizeThatFits forWidth:self.cg_width lineBreakMode:NSLineBreakByWordWrapping];

3.當(dāng)照片和文字需要顯示在多行一起顯示的時候堪伍,可以通過富文本顯示。
NOTE:單純的照片可以使用NSTextAttachment,復(fù)雜的交互可以使用CoreText觅闽。

           UIImage *image = [UIImage imageWithColor:[UIColor clearColor]];;
           NSTextAttachment *attach = [[NSTextAttachment alloc] init];
           attach.image = image;
           attach.bounds = CGRectMake(0, 0, 0, 20);
           NSAttributedString *textAttachmentString = [NSAttributedString attributedStringWithAttachment:attach];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帝雇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蛉拙,更是在濱河造成了極大的恐慌尸闸,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孕锄,死亡現(xiàn)場離奇詭異吮廉,居然都是意外死亡,警方通過查閱死者的電腦和手機畸肆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門宦芦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人轴脐,你說我怎么就攤上這事调卑。” “怎么了大咱?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵恬涧,是天一觀的道長。 經(jīng)常有香客問我碴巾,道長溯捆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任厦瓢,我火速辦了婚禮提揍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘煮仇。我一直安慰自己劳跃,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布欺抗。 她就那樣靜靜地躺著售碳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绞呈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天间景,我揣著相機與錄音佃声,去河邊找鬼。 笑死倘要,一個胖子當(dāng)著我的面吹牛圾亏,可吹牛的內(nèi)容都是我干的十拣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼志鹃,長吁一口氣:“原來是場噩夢啊……” “哼夭问!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起曹铃,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤缰趋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后陕见,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秘血,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年评甜,在試婚紗的時候發(fā)現(xiàn)自己被綠了灰粮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡忍坷,死狀恐怖粘舟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情佩研,我是刑警寧澤蓖乘,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站韧骗,受9級特大地震影響嘉抒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袍暴,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一些侍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧政模,春花似錦岗宣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至趁猴,卻和暖如春刊咳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背儡司。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工娱挨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捕犬。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓跷坝,卻偏偏與公主長得像酵镜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子柴钻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 常用屬性和方法有: 1淮韭、創(chuàng)建 CGRect rect = CGRectMake(100,200,50,50);UI...
    西蜀閱讀 4,815評論 0 3
  • 一、簡介 <<UILabel類實現(xiàn)一個只讀的文本視圖贴届。您可以使用這個類的靜態(tài)文本靠粪,如你可能會使用它來識別你的用戶界...
    無邪8閱讀 1,251評論 0 0
  • ·UILable是iPhone界面最基本的控件,主要用來顯示文本信息粱腻。 ·常用屬性和方法有: 1庇配、創(chuàng)建 CGRec...
    默默_David閱讀 500評論 0 0
  • 計算就粗心捞慌,這種情況普遍的存在于孩子當(dāng)中,很多人會在孩子遇到這種情形的時候柬批,給孩子戴上一個粗心的帽子啸澡,從此粗心就成...
    行者無疆007閱讀 129評論 0 0
  • 我俯在寂寞的窗口遙望往事 孤獨的風(fēng)吹過 我感到徹骨的悲涼 記憶像流星劃過無邊的天網(wǎng) 我企盼的目光卻穿不透這濃濃的暗...
    吉祥貓閱讀 248評論 0 0