标签:常用属性、设置行间距字间距并计算高度
-
设置 lable 的行字间距
// 通过富文本属性设置行间距,字间距
/**
设置lable的字体间距
@param lable lable
@param content 内容文本
@param font 字体
@param fontSpace 字间距
@param lineSpace 行间距
*/
-(void)setLableLineSpacing:(UILabel*)lable andContent:(NSString*)content andFont:(UIFont*)font andChartSpace:(CGFloat)fontSpace andLineSpace:(NSInteger)lineSpace{
//通过富文本属性设置行间距
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:content];
//设置行间距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:lineSpace];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [content length])];
//设置字间距
[attributedString addAttribute:NSKernAttributeName value:@(fontSpace) range:NSMakeRange(0, [content length])];
//设置字体
[attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, [content length])];
lable.attributedText = attributedString;
[lable sizeToFit];
}
通过赋值一个设置相同的lable计算行高
/**
计算lable高度(含行间距)
@param content 内容
@param font 字体
@param fontSpace 字体间距
@param lineSpace 行间距
@return 高度
*/
-(CGFloat)computeLableHeightWithContent:(NSString*)content andFont:(UIFont*)font andChartSpace:(CGFloat)fontSpace andLineSpace:(NSInteger)lineSpace{
//创建临时的lable计算高度(lable属性要和设置的lable一致)
UILabel *tempLable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, screenWidth - 25, 16)];
tempLable.numberOfLines = 0;
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:content];
//设置行间距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:lineSpace];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [content length])];
//设置字间距
[attributedString addAttribute:NSKernAttributeName value:@(fontSpace) range:NSMakeRange(0, [content length])];
//设置字体
[attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, [content length])];
tempLable.attributedText = attributedString;
[tempLable sizeToFit];
return tempLable.frame.size.height;
}
2.attributedText:设置标签副文本
NSString *text = @"first";
NSMutableAttributedString *textLabelStr = [[NSMutableAttributedString alloc] initWithString:text];
[textLabelStr setAttributes:@{NSForegroundColorAttributeName : [UIColor lightGrayColor],
NSFontAttributeName : [UIFont systemFontOfSize:17]} range:NSMakeRange(11, 10)];
label.attributedText = textLabelStr;
3.font:设置标签文本字体。
默认是系统自带字体,大小为17。
label.font = [UIFont systemFontOfSize:17]
label.font = [UIFont fontWithName:@"Arial" size:16];
label.textColor = [UIColor blueColor];
4.textAlignment:设置标签文本对齐方式。
label.textAlignment = NSTextAlignmentCenter;
5.lineBreakMode:设置标签文字过长时的显示方式
这个属性使用于label中文本的换行和截短。首先numberofLines必须设置为0,才有效果。
// 以字符为显示单位显示,后面部分省略不显示。
label.lineBreakMode = NSLineBreakByCharWrapping;
// 剪切与文本宽度相同的内容长度,后半部分被删除。
label.lineBreakMode = NSLineBreakByClipping;
// 前面部分文字以……方式省略,显示尾部文字内容。
label.lineBreakMode = NSLineBreakByTruncatingHead;
// 中间的内容以……方式省略,显示头尾的文字内容。
label.lineBreakMode = NSLineBreakByTruncatingMiddle;
// 结尾部分的内容以……方式省略,显示头的文字内容。
label.lineBreakMode = NSLineBreakByTruncatingTail;
// 以单词为显示单位显示,后面部分省略不显示。
label.lineBreakMode = NSLineBreakByWordWrapping;
比如:
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakByTruncatingMiddle;
6.enabled:设置文字内容是否可变。
7.adjustsFontSizeToFitWidth:文字内容自适应标签宽度。
8.adjustsLetterSpacingToFitWidth:根据字母的间隔自适应标签宽度,超出部分以……显示。
9.numberOfLines:标签最多显示行数。
10.minimumScaleFactor:设置最小字体
与minimumFontSize相同,minimumFontSize在IOS 6后不能使用。
11.highlightedTextColor:设置文本高亮显示颜色,与highlighted一起使用。
12.shadowColor:设置文本阴影颜色。
13.shadowOffset:设置文本阴影与原文本的偏移量。
label.shadowOffset = CGSizeMake(1.0, 5.0);
14.userInteractionEnabled:设置标签是否忽略或移除用户交互。默认为NO。
15.preferredMaxLayoutWidth:优先选择标签布局的最大宽度。
16.baselineAdjustment:如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为。
label4.baselineAdjustment = UIBaselineAdjustmentNone;
// 默认,文本最上端与中线对齐。
UIBaselineAdjustmentAlignBaselines=0,
// 文本中线与label中线对齐。
UIBaselineAdjustmentAlignCenters,
// 文本最低端与label中线对齐。
UIBaselineAdjustmentNone,
17. backgroundColor 背景颜色
// 清空背景颜色
label1.backgroundColor = [UIColor clearColor];
网友评论