回答
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)。
This question地址获取字符串的一部分,你需要做的。尽管如此,您可以使用this question来了解如何更改颜色,而不是使用BOLD修改文本。
通过使用NSAttributedString字符串,您可以设置两种不同的颜色。 NSAttributedString
最简单的方法是在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
提供的范围不会是您需要的范围。您必须根据自己的需要更改范围,具体取决于两个单词之间是否有空格或其他字符。
苹果文档:
哦,非常感谢编辑:D我只是看着如何做到这一点不集群的答案,我能够点击编辑,看看你做了格式化,非常有义务 –
纠正我,如果我错了,但NSAttributedString不是这样做的方式。链接的文档似乎无法指定属性的范围。但是,您的代码使用NSMutableAttributedString,其文档的范围是:https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSMutableAttributedString_Class/Reference/Reference.html#//apple_ref/occ/instm/NSMutableAttributedString/addAttribute:值:范围: – prewett
这是正确的,在我写了答案的时候,我想我没有注意 –
- 1. UITableViewCell详细信息文本标签文本颜色
- 2. UITableViewCell setSelected方法颜色文本标签黑色
- 3. 在UItableViewCell中更改UILabel文本颜色
- 4. PerlTk标签 - 同一个部件中的不同颜色文本
- 5. libGDX:多种颜色的文本在一个标签
- 6. 从多标签上的一个标签获取文本UITableViewCell
- 7. 更改UITableViewCell中UILabel的文本颜色
- 8. 如何更改gtkdialog笔记本的标签颜色和标签文本颜色
- 9. 更改标签Widget中的文本颜色和文本大小...?
- 10. matplotlib:颜色条及其文本标签
- 11. 更改标签的文本颜色
- 12. GChart文本颜色和轴标签
- 13. 更改标签文本颜色RadioButton
- 14. 根据文本更改UITableViewCell中文本的颜色
- 15. 多个文本颜色
- 16. 如何在文本前添加两个标签,其中一个标签是“$”?
- 17. ReportViewer:两个文本颜色,一个单元格
- 18. 设置基于文本的asp:标签文本颜色
- 19. UITableViewCell中的SecureText(文本标签)
- 20. 两个标签替换文本 - sed的
- 21. Xamarin MvvmCross iOS Bool颜色ValueConverter不更改标签文本颜色
- 22. 如何将文本标签的颜色更改为UITableViewCellStyleValue1颜色
- 23. 更改默认插入符光标颜色在一个文本
- 24. 文本格式在一个.NET标签
- 25. 在单个DataGridView中设置两种颜色文本单元格
- 26. 记事本++标签颜色
- 27. 在Textmate中,如何更改HTML标签内文本的颜色?
- 28. 在ActionBarActivity中更改标签文本的颜色
- 29. 如何动态调整UITableViewCell中两个文本标签宽度的大小?
- 30. asp.net将两个标签控件关联到一个文本框
kCTStrokeColorAttributeName < - 看起来像设置统计员的... ...的addAttribute需要一个字符串值,统计员是号码 –
@A'saDickens你是对的。只是改变了。 – cescofry