如何在同一标签中使用不同的颜色

时间:2012-11-19 11:17:17

标签: iphone objective-c uilabel

我要编写的问题已经使用两个UILabel解决了。我正在寻找一些优化方式。 我有一个字符(example : hello world ),需要在UILabel中显示不同颜色。"hello in red color " and "world in green color"

提前致谢

5 个答案:

答案 0 :(得分:5)

假设您有一个名为coloredLabel的文本标签,并且您希望以红色和世界绿色编写hello。
在iOS 6中,您可以创建属性字符串并将其设置为标签的属性文本:

    NSMutableAttributedString* str=[[NSMutableAttributedString alloc]initWithString: @"Hello world"];
    [str setAttributes: @{ NSForegroundColorAttributeName : [UIColor redColor] }  range: NSMakeRange(0, 5) ];
    [str setAttributes: @{ NSForegroundColorAttributeName : [UIColor greenColor] }  range: NSMakeRange(6, 5) ];
    coloredLabel.attributedText= str;

答案 1 :(得分:2)

从iOS 6开始,UILabel具有attributedText属性。将具有所需内容和格式属性的相应NSAttributedString分配给此属性,您就完成了。最简单的方法是在Interface Builder中,您只需将标签的文本从“Plain”切换为“Attributed”。完成此操作后,您可以直接在IB中设置格式属性。

(正如我所说,此解决方案仅适用于iOS 6.0 +)

答案 2 :(得分:1)

如果您正在寻找与iOS 4的向后兼容性,您可以使用Nimbus的NIAttributedLabelhttp://nimbuskit.info/

答案 3 :(得分:0)

是的,你也可以像下面的图像模式一样设置颜色..

UIColor *LableColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"anyImageName"]];

答案 4 :(得分:0)

如果你需要低于iOS 6的目标,那么

https://github.com/mattt/TTTAttributedLabel就可以了!