一个UILabel不同部分显示不同颜色

Posted 小课桌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个UILabel不同部分显示不同颜色相关的知识,希望对你有一定的参考价值。

我们直接来看效果图吧:

 

需求:就是表格cell里面的状态Label,前面的“状态:”是黑色,后面的状态值是红色,他们在同一个Label上,怎么做呢?

解答:真的是会者不难,难者不会啊,使用富文本,轻松搞定。

费话不多说,直接上代码:

 1 // 根据状态值合成富文本
 2 - (NSMutableAttributedString *)getStateString:(NSString *)state{
 3 
 4     // 合成后的字符串
 5     NSString *fullStr = [NSString stringWithFormat:@"状态:%@",state];
 6 
 7     // 状态值的Range
 8     NSRange range = [fullStr rangeOfString:state];
 9     
10     // 状态值显示的颜色
11     UIColor *color = [UIColor kt_colorWithHex:0xff1e00 andAlpha:1];
12     
13     // 将合成后的字符串转换为富文本
14     NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:fullStr];
15 
16     // 给对应的range添加属性
17     [attributedStr addAttributes:@{NSForegroundColorAttributeName:color} range:range];
18     
19     return attributedStr;
20 }

然后直接将富文本赋值给Label的attributedText

1 self.stateLabel.attributedText = [self getStateString:@"未接单"];

 

以上是关于一个UILabel不同部分显示不同颜色的主要内容,如果未能解决你的问题,请参考以下文章

带有两种不同颜色文本的 UILabel

具有不同字体大小和颜色的UILabel文本[重复]

ios设置UILabel中文字的不同颜色和字体字号

如何在 UILabel 中的不同字符串上显示两个单独的链接?

Android用代码给TextView中间部分设置不同的颜色

Android用代码给TextView中间部分设置不同的颜色