我在UITableViewCell
内有一个由两个单词组成的文字标签。
如何更改单词的颜色;将第一个单词设为绿色,将第二个单词设为红色?
答案 0 :(得分:10)
NSString *twoWords = @"Green Red";
NSArray *components = [twoWords componentsSeparatedByString:@" "];
NSRange greenRange = [twoWords rangeOfString:[components objectAtIndex:0]];
NSRange redRange = [twoWords rangeOfString:[components objectAtIndex:1]];
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:twoWords];
[attrString beginEditing];
[attrString addAttribute: NSForegroundColorAttributeName
value:[UIColor greenColor]
range:greenRange];
[attrString addAttribute: NSForegroundColorAttributeName
value:[UIColor redColor]
range:greenRange];
[attrString endEditing];
然后你可以直接在UILabel上使用attrString(> iOS 6,检查Apple Documentation)。
答案 1 :(得分:7)
最简单的方法是在iOS 6.0或更高版本中使用nsattributedstring。您可以在titleLabel
中UITableViewCell
(或任何其他包含文本的对象)中分配其中一个。如果你使用titleLabel
,你会这样做:
[cell.titleLabel setAttributedText:yourAttributedString];
要使用NSAttributedString
设置颜色,请执行以下操作:
NSMutableAttributedString* attributedString = [[NSMutableAttributedString alloc] initWithString:stringToManipulate];
[attributedString beginEditing];
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(0, widthOfFisrtWord)];
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(widthOfFisrtWord, widthOfSecondWord)];
[attributedString endEditing];
请注意,上面使用NSMakeRange
提供的范围不是您需要的范围。您必须更改范围以满足您自己的需要,具体取决于两个单词之间是否有空格或其他字符。
Apple文档:
答案 2 :(得分:0)
This question地址获取字符串的一部分,您需要这样做。但是,您可以使用this question来了解如何更改颜色,而不是使用 BOLD 修改文本。
答案 3 :(得分:0)
通过使用NSAttributedString字符串,您可以设置两种不同的颜色。NSAttributedString