本文主要介紹:文字適應(yīng)UILabel队贱,UILabel適應(yīng)文字
* 文字適應(yīng)UILabel
文字大小根據(jù)UILabel
的尺寸縮放
// 設(shè)置文字自適應(yīng)
_label.adjustsFontSizeToFitWidth = YES;
// UIBaselineAdjustmentAlignBaselines 居下
// UIBaselineAdjustmentAlignCenters 居中
// UIBaselineAdjustmentNone 居上
_label.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
* UILabel適應(yīng)文字
需要UILabel
適應(yīng)文字毛甲,在寬度一定的時(shí)候,那就需要計(jì)算文字的高度,計(jì)算文字高度的方法有以下幾種:
1.此方法適合一行的文字計(jì)算,如果行數(shù)越多岁钓,由于換行時(shí)可能會(huì)有一個(gè)文字顯示不下的空隙,導(dǎo)致計(jì)算值不準(zhǔn)確。如本圖所示屡限,高度計(jì)算偏小品嚣。
CGSize size = [text boundingRectWithSize:CGSizeMake(_textLab.frame.size.width, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:@{NSFontAttributeName:_textLab.font}
context:nil].size;
一段文字
2.當(dāng)有文字分段的時(shí)候,因?yàn)閾Q行產(chǎn)生的占位符钧大,上面的方法就不能準(zhǔn)確計(jì)算出文字高度了翰撑,這就需要下面的方法
textLab.text = text;
_tHeight = [_textLab sizeThatFits:CGSizeMake(_textLab.frame.size.width, MAXFLOAT)].height;
分段文字
3.當(dāng)有文字分段的時(shí)候,并且還需要對(duì)段落的文字樣式做不同定制的時(shí)候啊央,這就需要下面的方法
// 第一種樣式
NSMutableParagraphStyle *paragraphStyle1 = [[NSMutableParagraphStyle alloc] init];
paragraphStyle1.lineSpacing = 2; //增加行高
//paragraphStyle1.paragraphSpacing = 10; //段落后面的間距
NSMutableAttributedString *showStr = [[NSMutableAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:_textLab.font,NSParagraphStyleAttributeName:paragraphStyle1.copy,NSBackgroundColorAttributeName:_textLab.backgroundColor}];
// 第二種樣式
NSMutableParagraphStyle *paragraphStyle2 = [[NSMutableParagraphStyle alloc] init];
paragraphStyle2.lineSpacing = 2;
[showStr appendAttributedString:[[NSAttributedString alloc] initWithString:dText attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10.0],NSParagraphStyleAttributeName:paragraphStyle2.copy,NSBackgroundColorAttributeName:_textLab.backgroundColor,NSForegroundColorAttributeName:[UIColor redColor]}]];
_textLab.attributedText = showStr;
_tHeight = [_textLab sizeThatFits:CGSizeMake(_textLab.frame.size.width, MAXFLOAT)].height;
樣式不同分段文字