我有以下代码:
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:_textView.text];
NSRange totalRange = NSMakeRange(0, [attributedString length]);
[attributedString addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor yellowColor].CGColor
range:totalRange];
其中,在iOS 6上运行时,总是会使字符串显示为红色。
有趣的是CoreText适用于指定字体,如下所示:
[attributedString addAttribute:(id)kCTFontAttributeName
value:[UIFont boldSystemFontOfSize:20]
range:specialFontRange];
以这种方式设置颜色可以正常工作:
[attributedString addAttribute:NSForegroundColorAttributeName
value:[UIColor yellowColor]
range:totalRange];
但出于兼容性原因,我必须使用CoreText。关于如何使用CoreText在iOS 6中指定颜色的任何想法?
答案 0 :(得分:0)
这实际上取决于你如何绘制文本。如果您使用的是-(void)drawInRect:(CGRect)rect;
或-(void)drawAtPoint:(CGPoint)point;
(仅适用于iOS6或更高版本),则必须使用constants section of NSAttributedString Additions Reference中指定的常量。例如,要设置文本颜色,必须使用键NSForegroundColorAttributeName
。
如果您使用Core Graphics进行绘图,则需要坚持使用Core Text String Attributes Reference中指定的常量。