記錄label一些基本屬性,包括常用的文字自適應高度金闽,行間距等基本使用方法
/** 設置高亮文本顏色涵妥,與highlighted屬性一起使用,只有設置highlighted為YES才生效 */
self.label.highlightedTextColor = [UIColor redColor];
/** 設置行數(shù)助币,0為多行 */
self.label.numberOfLines = 1;
/** 默認為NO,一般添加手勢才會設置為YES */
self.label.userInteractionEnabled = YES;
/** 默認為YES螟碎,若設置為NO眉菱,文字顏色會變暗,而且高亮屬性highlighted失效 */
self.label.enabled = YES;
/** 設置陰影 */
self.label.shadowColor = [UIColor orangeColor];
self.label.shadowOffset = CGSizeMake(1, 2);
/** 文本對齊方式
????NSTextAlignmentLeft ?默認左對齊
????NSTextAlignmentCenter ?居中
????NSTextAlignmentRight ?右對齊
*/
self.label.textAlignment = NSTextAlignmentLeft;? ?//?左對齊
/** ?在固定的寬高度下掉分,自動調(diào)整字體大小俭缓,以全部顯示字體 ∷止可根據(jù)字數(shù)來調(diào)整字體大小华坦,值是0~1,與adjustsFontSizeToFitWidth屬性一起使用和行數(shù)為1的時候才有效 */
self.label.minimumScaleFactor = 8.0/[UIFont labelFontSize];
self.label.adjustsFontSizeToFitWidth = YES;
/** 如果adjustsFontSizeToFitWidth屬性設置為YES不从,這個屬性就來控制文本基線的行為惜姐。
????UIBaselineAdjustmentAlignBaselines = 0,默認,文本最上端與label中線對齊
????UIBaselineAdjustmentAlignCenters,文本中線與label中線對齊
????UIBaselineAdjustmentNone,文本最低端與label中線對齊
*/
self.label.baselineAdjustment = UIBaselineAdjustmentNone;
/* 設置標簽文字過長時的顯示方式
????NSLineBreakByWordWrapping = 0, 以單詞為單位顯示椿息,超出部分省略不顯示 (adjustsFontSizeToFitWidth屬性失效)
????NSLineBreakByCharWrapping,以字符為顯示單位顯示歹袁,超出部分省略不顯示 (adjustsFontSizeToFitWidth屬性失效)
????NSLineBreakByClipping,剪切與文本寬度相同的內(nèi)容長度,超出部分不顯示
????NSLineBreakByTruncatingHead,Truncate at head of line: "...wxyz"
????NSLineBreakByTruncatingTail,Truncate at tail of line: "abcd..."
????NSLineBreakByTruncatingMiddleTruncate middle of line: ?"ab...yz"
*/
self.label.lineBreakMode = NSLineBreakByClipping;
/** 基本不用的屬性 */
self.label.minimumFontSize = 50;
self.label.allowsDefaultTighteningForTruncation = YES;
self.label.adjustsLetterSpacingToFitWidth = YES;
self.label.preferredMaxLayoutWidth = self.view.frame.size.width;
//?點擊按鈕后設置highlighted和attributedText兩個屬性
- (IBAction)action:(UIButton?*)sender {
????self.label.highlighted?= !self.label.highlighted;
????/**?設置文本樣式
????????NSFontAttributeName?字體默認是12號
????????NSParagraphStyleAttributeName?段落樣式
????????NSForegroundColorAttributeName?指定字體顏色
????????NSBackgroundColorAttributeName?字體背景顏色
????????NSLigatureAttributeName?連體字符
????????NSKernAttributeName?字距的像素
????????NSStrikethroughStyleAttributeName指定字上加刪除線
????????NSUnderlineStyleAttributeName?指定字加下劃線
????????NSStrokeColorAttributeName?填充部分顏色
????????NSStrokeWidthAttributeName?填充寬度
????????NSShadowAttributeName?陰影
????????NSUnderlineColorAttributeName?下劃線顏色
????*/
????NSMutableAttributedString?*attributed = [[NSMutableAttributedStringalloc]initWithString:self.label.text];
????//?設置第一個字符的顏色為黑色
????[attributed?addAttribute:NSForegroundColorAttributeNamevalue:[UIColorblackColor]range:NSMakeRange(0,1)];
????self.label.attributedText?= attributed;
}
/**
*?根據(jù)文字自動設置size
?*/
- (CGSize)getCurrentTextSize {
????????CGSize?size =CGSizeMake(MAXFLOAT,MAXFLOAT);
????????if?(self.label.text.length?>?0) {
????????????#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >=70000
????????????????size = [self.label.textboundingRectWithSize:size?options:NSStringDrawingUsesLineFragmentOrigin
????????????????attributes:@{NSFontAttributeName:self.label.font}?context:nil].size;
????????????#else
????????????????size = [self.text sizeWithFont:self.font?constrainedToSize:size?lineBreakMode:NSLineBreakByCharWrapping];
????????????#endif
????}
? ? return?size;
}
/** 設置行間距 */
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 15;
NSDictionary*attrbut=@{NSFontAttributeName:self.font,NSParagraphStyleAttributeName:paragraphStyle};
NSMutableAttributedString*attributedText=[[NSMutableAttributedStringalloc]initWithString:self.text attributes:attrbut];
label.attributedText = attributedText;
PS:適用初學者寝优,希望能幫助到需要的人条舔,如有不對,歡迎指點乏矾!