我要编写的问题已经使用两个UILabel
解决了。我正在寻找一些优化方式。
我有一个字符(example : hello world )
,需要在UILabel
中显示不同颜色。"hello in red color " and "world in green color"
提前致谢
答案 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的NIAttributedLabel
。
http://nimbuskit.info/
答案 3 :(得分:0)
是的,你也可以像下面的图像模式一样设置颜色..
UIColor *LableColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"anyImageName"]];
答案 4 :(得分:0)