代码改变世界

富文本 NSAttributedString

2015-07-07 20:07  心舞向阳  阅读(138)  评论(0编辑  收藏  举报

在项目开发中, 我们经常使用UILabel、UITextView、UITextField来展示各种文字信息, 很多时候, 我们需要使用不同的颜色和字体来显示文字信息, 而这三个控件本身并不能实现这个效果, 这时候, 就需要用到富文本中的NSAttributedString了.

例如, 有"预收服务费  x天"这样一段文字, 如果想要x天显示为红色, 那么就可以这么做:

1.初始化一个NSMutableAttributedString

NSMutableAttributedString *dayString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"预收服务费  %@", [NSString stringWithFormat:@"%ld", _days]]];

2.为字符串添加具体效果

[dayString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(7, dayString.length - 7)];//设置颜色

[dayString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:15] range:NSMakeRange(7, dayString.length - 7)];//设置字体

3.将字符串添加进控件

[_refReceiveCost setAttributedText:dayString];