您的位置:首页 > 产品设计 > UI/UE

UILabel行间距及其用法

2016-03-16 21:30 399 查看
看了很多别人写的NSMutableAttributedString,今天自己把NSMutableAttributedString用法总结一次

创建一个helper帮助类,便于迅速调用 下面是帮助类中的 实现方法

//传入值 labStr文本内容, spacing行距, x y起始点坐标

+ (UILabel *)getLinesSpacing:(NSString *)labStr spacing:(float)spacing withX:(float)x withY:(float)y{

UILabel *cLabel = [UILabelnew];

NSString * cLabelString = labStr;

cLabel.numberOfLines =
0;

NSMutableAttributedString * attributedString = [[NSMutableAttributedStringalloc]initWithString:cLabelString];

//此处只有一个paragraphStyle,每行的间距就一样,可以设置多个,设置成不同的行间距,

NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStylealloc]init];

[paragraphStyle setLineSpacing:spacing];

//此处可给不同的属性,不同的值,不同的range或者string 实现不同的效果,如,一行中某个字体颜色不同,

/**

* NSFontAttributeName
设置不同的字体大小

*NSForegroundColorAttributeName
设置不同的字体颜色

*NSParagraphStyleAttributeName
设置不同的行间距

* value 需要给的值

* rangge 这个样式所在label中包含的范围

*/

[attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStylerange:NSMakeRange(0,
[cLabelStringlength])];

[cLabel setAttributedText:attributedString];

[cLabel sizeToFit];

cLabel.lineBreakMode =NSLineBreakByTruncatingTail;

CGSize maximumLabelSize =
CGSizeMake(100,
9999);//labelsize的最大值

//关键语句

CGSize expectSize = [cLabel
sizeThatFits:maximumLabelSize];

//设置label的宽高

cLabel.frame =
CGRectMake(x, y, expectSize.width, expectSize.height);

return cLabel;

}

帮助类中的方法已写好,下面是调用

//行间距10起始点位置 20,74

UILabel *labe = [LabelHelpergetLinesSpacing:@"第一行\n第二行\n第三行"spacing:10withX:20withY:74];

labe.font = [UIFontsystemFontOfSize:16];

[self.viewaddSubview:labe];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: