在iOS开发过程中对文本的处理,可以需要去调整字间距,行间距之类,在这里给大伙介绍一个工具类(NSMutableParagraphStyle),它可以帮我们实现这个需求:
NSMutableParagraphStyle是NSParagraphStyle的可变类,用它可以设置以下属性:
- lineSpacing(行间距)
- paragraphSpacing(段间距)
- alignment(文本对齐方式)(左、右、居中对齐)
- firstLineHeadIndent(首行缩进)
- headIndent (头缩进)
- tailIndent(尾缩进)
- lineBreakMode(换行模式)(WordWrapping、CharWrapping,Clipping,TruncatingHead,TruncatingTail,runcatingMiddle)
- minimumLineHeight(最小行高)
- maximumLineHeight(最大行高)
- baseWritingDirection(文字书写方向)(Natural,LeftToRight,RightToLeft)
- paragraphSpacingBefore(段前间距)
- hyphenationFactor(不知道这个是什么,它的取值范围(0〜1.0))
要想实现下划线等属性,我们可以使用NSAttributedString及其可变子类进行设置:
常用的属性名: - NSFontAttributeName (字体属性)
- NSParagraphStyleAttributeName(段落属性)
- NSForegroundColorAttributeName(文字前景色)
- NSBackgroundColorAttributeName (背景色)
- NSStrikethroughStyleAttributeName(删除线属性)
- NSStrikethroughColorAttributeName(删除线颜色)
- NSUnderlineStyleAttributeName(下划线)
- NSUnderlineColorAttributeName(下划线颜色)
我们可以通过创建一个NSMutableParagraphStyle对象,设置我们想要的段落属性,然后将段落属性添加至属性文本中,
-(NSAttributedString *)adjustlineSpace:(float)space {
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc]initWithAttributedString:self];//创建一个可变属性文本对象
NSMutableParagraphStyle * paragraph =[[NSMutableParagraphStyle alloc]init];//创建一个段落对象
[paragraph setLineSpacing:space];//设置段落属性
[attribute addAttribute:NSParagraphStyleAttributeName value:paragraph range:NSMakeRange(0, self.length)];//为属性文本添加属性
return attribute;
}