iOS给Lable字体添加行间距

引子:有的时候,当你用UILable加载一段话的时候,由于那些字可能会很多,系统的布局之后的字间距会很挤,但是,UI设计会要求你,,把字于字的间距调大一些,这时候就要程序猿敲代码改变字体的间距。接下来就给出实现这种效果的代码。另外,我在使用的时候,加了行间距之后,用

– (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context方法,居然算出来的高度不准确。所以接下来也会给出解决方案。在这里用到了我以前写到的富文本控件NSTextattachment,链接,大家可以去看看怎么实现图文混排的知识。

第一步:初始化一个UILable

UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, 21)];lable.numberOfLines = 0;

第二步:初始化NSMutableParagraphStyleNSString *str = @"可以自己按照宽高,字体大小,来计算有多少行。。然后。。。每行画一个UILabel。。高度自己可以控制把这个写一个自定义的类。郝高明";NSMutableAttributedString *attrit = [[NSMutableAttributedString alloc]initWithString:str];NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init];style.lineSpacing = 5; //设置文字行间距[attrit addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, [str length])];lable.attributedText = attrit;

第三步:也就是计算高度的一步[lable sizeToFit]; //系统自带的方法,可以自动将文字的高度布局到UILable上,这里计算有一个小问题,就是如果文字很少只有一行,则计算的宽度就会出现问题,欢迎大家加入顶部 QQ 群里一起交流解决方案。第四步:添加UILable,并输出lable的高度[self.view addSubview:lable];NSLog(@"%@",NSStringFromCGRect(lable.frame));在控制台打印的为:2015-07-22 18:26:41.246 字体行间距[5410:209790] {{0, 64}, {34, 25.5}}补充:NSMutableParagraphStyle里边有很多的属性:style.lineSpacing = 10;//增加行高style.headIndent = 10;//头部缩进,相当于左paddingstyle.tailIndent = -10;//相当于右paddingstyle.lineHeightMultiple = 1.5;//行间距是多少倍style.alignment = NSTextAlignmentLeft;//对齐方式style.firstLineHeadIndent = 20;//首行头缩进style.paragraphSpacing = 10;//段落后面的间距style.paragraphSpacingBefore = 20;//段落之前的间距

大家有什么不懂得或者需要想交流知识的,可以加顶部的QQ群,我在那里等你。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

最糟糕的行为是抱怨,最易见效 的努力是从自己做起。

iOS给Lable字体添加行间距

相关文章:

你感兴趣的文章:

标签云: