我有一个UITableViewCell
由两个单词组成的文本标签。
我怎样才能改变单词的颜色;使第一个词绿色,第二个词红色?
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 文档)。
最简单的方法是在 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
的范围不是您需要的范围。您必须更改范围以满足您自己的需要,具体取决于两个单词之间是否有空格或其他字符。
苹果文档:
通过使用 NSAttributedString 字符串,您可以设置两种不同的颜色。NSAttributedString