2

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

提前致谢

4

5 回答 5

5

假设您有一个名为 colouredLabel 的文本标签,并且您想用红色写 hello,用绿色写 world。
在 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;
于 2012-11-19T11:35:10.040 回答
2

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

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

于 2012-11-19T11:21:33.810 回答
1

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

于 2012-11-19T11:37:04.770 回答
0

是的,您还可以使用如下图像图案设置颜色..

UIColor *LableColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"anyImageName"]];
于 2012-11-19T11:32:57.380 回答
0

https://github.com/mattt/TTTAttributedLabel是如果您需要定位低于 iOS 6 的方法!

于 2012-11-19T14:55:20.013 回答