如何分配NSString UIColor

时间:2011-10-13 21:24:07

标签: iphone objective-c nsstring uicolor

有没有办法可以像在

中一样将UIColor分配给NSString
cell.textLabel.text = [UIColor grayColor];

我正在尝试为以下字符串添加颜色,如:

NSString *text = @"Hello"
[text setColor:[UIColor grayColor]; // It gives error here saying it cannot assign

还有其他方法可以为NSString指定颜色吗?

4 个答案:

答案 0 :(得分:6)

NSString只是一串字符。它没有颜色,字体,重量,大小,样式或任何东西 - 只是字符。您需要使用NSAttributedString代替。

但请记住,NSAttributedString不是NSString - 它基本上是一个轻量级容器,它将字符串与属性字典配对并提供适当的绘图代码。特别是,您无法将NSAttributedString传递给期望字符串的API。您要么必须拥有一个采用NSAttributedString的API,要么自己绘制字符串。

答案 1 :(得分:1)

您无法为字符串指定颜色。字符串没有关于颜色的数据。您可以为标签指定颜色,例如

cell.textLabel.textColor = [UIColor grayColor];

您必须等到显示字符串才能设置颜色。如果需要,可以将颜色存储在UIColor *类型的变量中,直到稍后。

答案 2 :(得分:0)

您没有在字符串上设置颜色,而是在标签上设置它。字符串只是一个字符序列 - 标签负责显示它,因此控制颜色之类的东西。

查看UILabel class reference并查找textColor属性。

在你的例子中,我认为你想要:

cell.textLabel.textColor = [UIColor grayColor];

答案 3 :(得分:0)

https://github.com/AliSoftware/OHAttributedLabel

1.Above是来自github的链接4个文件,你下载并将其放在项目文件夹中。

2.然后在你的.m文件中#import“NSAttributedString + Attributes.h”。

3.现在你可以改变你的字符串颜色,字体,大小等,如下所示。

NSString *prev = @"Name: ";

NSMutableAttributedString *now = [NSMutableAttributedString  attributedStringWithString:prev];

[now setTextColor:[UIColor blueColor]];

[now setFont:[UIFont fontWithName:@"AppleGothic" size:24]];