源码

iOS UILabel添加行间距、字间距

写在前面

在实际开发中,Label的默认行间距大小一般都是满足不了UI设计师设计的行间距大小的。于是乎,就需要我们开发人员手动调整Label的行间距大小。

然而,UILabel并没有提供直接修改行间距大小的属性

但是我们可以用Label的attributedText属性来设置

先上效果图:

默认Label效果

1.webp.jpg

行间距效果

2.webp.jpg

话不多说上代码:

NSString *str = @"在实际开发中,Label的默认行间距大小一般都是满足不了UI设计师设计的行间距大小的。于是乎,就需要我们开发人员手动调整Label的行间距大小。然而,UILabel并没有提供直接修改行间距大小的属性,但是我们可以用Label的attributedText属性来设置. 在实际开发中,Label的默认行间距大小一般都是满足不了UI设计师设计的行间距大小的。于是乎,就需要我们开发人员手动调整Label的行间距大小。然而,UILabel并没有提供直接修改行间距大小的属性,但是我们可以用Label的attributedText属性来设置";

NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:str];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 8.0// 设置行间距
paragraphStyle.alignment = NSTextAlignmentJustified//设置两端对齐显示
[attributedStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attributedStr.length)];

UILabel *lineSpaceLabel = [[UILabel alloc] initWithFrame:CGRectMake(20100, [UIScreen mainScreen].bounds.size.width - 400)];
lineSpaceLabel.backgroundColor = [UIColor cyanColor];
lineSpaceLabel.numberOfLines = 0;
lineSpaceLabel.attributedText = attributedStr;
[lineSpaceLabel sizeToFit];
[self.view addSubview:lineSpaceLabel];

UITextView一样可以设置的哟

更新:我刚发布了文章就有人私信问怎么改变字间距 (每行字与字之间的间距)

其实很简单哟

加上这句代码就可以了

[attributedStr addAttribute:NSKernAttributeName value:@(10) range:NSMakeRange(0, attributedStr.length)];

效果如图:

3.webp.jpg

作者:陈_Chen

链接:https://www.jianshu.com/p/f4924b70a57e

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/ios-uilabeltianjiaxingjianjuzijianju.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:11 月 28, 2018 at 10:25 下午

热评文章

发表回复

[必填]

我是人?

提交后请等待三秒以免造成未提交成功和重复