富文本AttributedString 使用小结

暂时没有需要深入应用就不细写了

AttributedString可以分为 NSAttributedStringNSMutableAttributedString 两种。在使用中通过将 AttributedString 赋值给控件的 attributedText 属性来添加文字样式。有属性的控件有 UILabelUITextFieldUITextView

使用方式

方式一

初始化一个 NSMutableAttributedString,然后向里面添加文字样式,将其赋给控件的 attributedText 属性。

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
NSString *str = @"人生若只如初见,何事悲风秋画扇。\n等闲变却故人心,却道故人心易变。\n骊山语罢清宵半,泪雨霖铃终不怨。\n何如薄幸锦衣郎,比翼连枝当日愿。";
//创建NSMutableAttributedString
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc]initWithString:str];

//设置字体和设置字体的范围
[attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30.0f] range:NSMakeRange(0, 3)];
//添加文字颜色
[attrStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(17, 7)];
//添加文字背景颜色
[attrStr addAttribute:NSBackgroundColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(17, 7)];
//添加下划线
[attrStr addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(8, 7)];

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(60, 100, 200, 0)];
label.backgroundColor = [UIColor greenColor];
//自动换行
label.numberOfLines = 0;
//设置label的富文本
label.attributedText = attrStr;
//label高度自适应
[label sizeToFit];
[self.view addSubview:label];

方式二

创建属性字典,并将各种属性初始化。赋值,并利用方法 appendAttributedString: 添加入 NSMutableAttributedString,将其赋给控件的 attributedText 属性。

例子:

1
2
3
4
NSString *str51 = @"\n设置删除线为细单实线,颜色为红色";
NSDictionary *dictAttr51 = @{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle),NSStrikethroughColorAttributeName:[UIColor redColor]};
NSAttributedString *attr51 = [[NSAttributedString alloc]initWithString:str51 attributes:dictAttr51];
[attributedString appendAttributedString:attr51];

富文本有许多可以设置的属性,我就不一一列举了。如果用到再 google 就可以了。至于图文混排之类的也是用到再说吧。