【转】iOS 富文本属性
前言
iOS 开发中我们常用到富文本属性,如行间距、链接、对齐等。这时我们iOS框架中的NSAttributedString类,他继承于NSObject类。专门用于给iOS中的字体来设计样式。
在这里我只对常用的作介绍,详细的可以点击这里查看这位博主写的,他写的十分详细。
本文使用NSMutableAttributedString实现富文本,主要步骤分为以下三步,为避免下面解释代码时所添加的注释不断重复,特在此说明提前说明一下:
调用 - (instancetype)initWithString:(NSString *)str 方法来创建 NSMutableAttributedString 实例
调用 - (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range 方法添加所需的 Attribute 属性,要注意range的范围,所添加的属性只对指定范围内的文字有效
给 label 赋值 : label.attributedText = attributedString;
NSParagraphStyleAttributeName —— 文本字、行间距,对齐等
NSString *text = @"我是一个很长很长很长的文本,我的字间距是5,行间距是20,对齐方式为居中对齐。";
NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc]initWithString:text];
// 创建NSMutableParagraphStyle实例
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 5; //字间距5
paragraphStyle.paragraphSpacing = 20; //行间距是20
paragraphStyle.alignment = NSTextAlignmentCenter; //对齐方式为居中对齐
[attributeStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, text.length)];
self.label.attributedText = attributeStr;
NSFontAttributeName —— 字体大小
NSString *text = @"我是30号系统字体,你是15号Courier-BoldOblique字体";
// 1.创建NSMutableAttributedString实例
NSMutableAttributedString *fontAttributeNameStr = [[NSMutableAttributedString alloc]initWithString:text];
// 2.添加属性
[fontAttributeNameStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30] range:NSMakeRange(0, 9)];
[fontAttributeNameStr addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Courier-BoldOblique" size:15] range:NSMakeRange(9, text.length - 9)];
// 3.给label赋值
self.label.attributedText = fontAttributeNameStr;
}