一、label的富文本屬性
label.attributedText
需要注意一點:如果一個label設定了富文本這個屬性,那它其他的設定都将失效。
二、富文本對象的建立
//初始化富文本對象的方法一:
- (id)initWithString:(NSString *)str;
//初始化富文本對象的同時設定富文本對象的屬性
- (id)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;
三、設定Label的富文本對象
方法一:建立富文本對象後逐個添加富文本對象的屬性
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(20, 30, 300, 80)];
label.backgroundColor = [UIColor lightGrayColor];
//初始化富文本對象:
NSMutableAttributedString * attributedStr = [[NSMutableAttributedString alloc] initWithString:@"我們都有一個家名字叫中國"];
//給富文本添加屬性1-字型大小
[attributedStr addAttribute:NSFontAttributeName
value:[UIFont systemFontOfSize:16.0]
range:NSMakeRange(2, 2)];
//給富文本添加屬性2-字型顔色
[attributedStr addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(2, 2)];
//給富文本添加屬性3-下劃線
[attributedStr addAttribute:NSUnderlineStyleAttributeName
value:@(NSUnderlineStyleSingle)
range:NSMakeRange(2, 2)];
//設定label的富文本屬性
label.attributedText = attributedStr;
[self.view addSubview:label];
方法二:建立富文本對象後統一設定富文本對象的屬性
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(20, 30, 300, 80)];
label.backgroundColor = [UIColor lightGrayColor];
//初始化富文本對象
NSMutableAttributedString * attributedStr = [[NSMutableAttributedString alloc] initWithString:@"我們都有一個家名字叫中國"];
//富文本的屬性通過字典的形式傳入
NSDictionary *attributeDict = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont systemFontOfSize:16.0],NSFontAttributeName,//字型
[UIColor redColor],NSForegroundColorAttributeName,//字型顔色
[UIColor greenColor],NSBackgroundColorAttributeName,//字型背景色
@(NSUnderlineStyleSingle),NSUnderlineStyleAttributeName,//下劃線
@(NSUnderlineStyleSingle),NSStrikethroughStyleAttributeName,//删除線
[UIColor blueColor],NSUnderlineColorAttributeName,//下劃線顔色
[UIColor yellowColor],NSStrikethroughColorAttributeName,//删除線顔色
[NSURL URLWithString:@"http://www.baidu.com"],NSLinkAttributeName,
nil];
//統一設定富文本對象的屬性
[attributedStr addAttributes:attributeDict range:NSMakeRange(2, 2)];
//或者也可以使用下面的方法
[attributedStr setAttributes:attributeDict range:NSMakeRange(4, 2)];
//設定label的富文本屬性
label.attributedText = attributedStr;
[self.view addSubview:label];
方法三:建立富文本對象的同時就添加屬性
//富文本的屬性通過字典的形式傳入
NSDictionary *attributeDict = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont systemFontOfSize:16.0],NSFontAttributeName,//字型大小
[UIColor redColor],NSForegroundColorAttributeName,//字型顔色
@(NSUnderlineStyleSingle),NSUnderlineStyleAttributeName,//下劃線
nil];
//初始化富文本對象的同時設定富文本對象的屬性
NSMutableAttributedString * attributedStr = [[NSMutableAttributedString alloc]initWithString:@"我們都有一個家名字叫中國" attributes:attributeDict];
//設定label的富文本屬性
label.attributedText = attributedStr;
[self.view addSubview:label];
PS: 同理一般有 add 方法就會有 remove 方法,下面是富文本對象的其它方法
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;//添加一個屬性
- (void)addAttributes:(NSDictionary<NSString *, id> *)attrs range:(NSRange)range;//添加一組屬性
- (void)removeAttribute:(NSString *)name range:(NSRange)range;//移除一個屬性
四、常見的屬性及說明
NSFontAttributeName
字型
NSParagraphStyleAttributeName
段落格式
NSForegroundColorAttributeName
字型顔色
NSBackgroundColorAttributeName
背景顔色
NSStrikethroughStyleAttributeName
删除線格式
NSUnderlineStyleAttributeName
下劃線格式
NSStrokeColorAttributeName
删除線顔色
NSStrokeWidthAttributeName
删除線寬度
NSShadowAttributeName
陰影
參考文章:
http://www.tuicool.com/articles/QZ3If2
http://my.oschina.net/u/2340880/blog/397500
http://www.itstrike.cn/Question/c688711b-0eba-465f-9880-35076f5ba1c2.html//關于link富文本 textView
http://www.bubuko.com/infodetail-382485.html