有没有办法可以像在
中一样将UIColor分配给NSStringcell.textLabel.text = [UIColor grayColor];
我正在尝试为以下字符串添加颜色,如:
NSString *text = @"Hello"
[text setColor:[UIColor grayColor]; // It gives error here saying it cannot assign
还有其他方法可以为NSString指定颜色吗?
答案 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]];