在项目开发中,我们经常会遇到在这样一种情形:在一个UILabel 使用不同的颜色或不同的字体来体现字符串,在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的attributedText, 使用不同颜色和不同字体的字符串,我们可以使用NSAttributedText 和 NSMutableAttributedText 类来实现。
现实代码:
|
1
2
3
4
|
@interface ViewController
: UIViewController@property (nonatomic,
strong) IBOutlet UILabel
*attrLabel;-
(IBAction)next:(id)sender;@end |
|
1
2
3
4
5
6
7
8
9
|
self.title
= @"For
iOS 6 & later";NSMutableAttributedStrin *str
= [[NSMutableAttributedStrin alloc]
initWithString:@"Using
NSAttributed String"];[str
addAttribute:NSForegroundColorAttribu value:[UIColor
blueColor] range:NSMakeRange(0,5)];[str
addAttribute:NSForegroundColorAttribu value:[UIColor
redColor] range:NSMakeRange(6,12)];[str
addAttribute:NSForegroundColorAttribu value:[UIColor
greenColor] range:NSMakeRange(19,6)];[str
addAttribute:NSFontAttributeName value:[UIFont
fontWithName:@"Arial-BoldItalicMT" size:30.0]
range:NSMakeRange(0,
5)];[str
addAttribute:NSFontAttributeName value:[UIFont
fontWithName:@"HelveticaNeue-Bold" size:30.0]
range:NSMakeRange(6,
12)];[str
addAttribute:NSFontAttributeName value:[UIFont
fontWithName:@"Courier-BoldOblique" size:30.0]
range:NSMakeRange(19,
6)];attrLabel.attributedText
= str; |
效果图:

如果想在iOS6.0以前版本实现这个效果,需要使用到一个第三方库TTTAttributedLabel,同时还有导入CoreText.frame框架.
本文介绍如何在iOS 6及以上版本中使用NSAttributedString为UILabel设置不同颜色和字体样式,并提供了一个具体的代码示例。对于iOS 6之前的版本,推荐使用TTTAttributedLabel库。

497

被折叠的 条评论
为什么被折叠?



