我需要UITextView,用户可以在插入时以多种颜色输入文本。例如,如果他输入XYZ,那么颜色将为红色,如果他输入ABC则必须为蓝色。
答案 0 :(得分:2)
不确定这是否有帮助,从IOS 6开始,您现在可以更改技术上包含字体和颜色的属性。我成功地对部分文本进行了字体更改,但是看到了改变颜色的挑战,无论如何,下面是苹果公司有朝一日应用更改的方法,因为AttributedText是UITextView的一个属性,应该允许相同的标准。
您可以使用(NSMutableAttributedString)而不是(NSString)与.attributedText(而不是.text)相关联,请参阅下面的示例,它非常可行,只需创建一个新的UITextView然后再做代理等名称它txtLog如下:
NSMutableAttributedString *Temp = [[NSMutableAttributedString alloc] initWithString:@"Heider Sati... Hello World"];
[Temp addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:30.0f] range:NSMakeRange(0, 11)]; /* This will change the first 11 characters into the font above... */
[Temp addAttribute:NSStrokeColorAttributeName value:[UIColor redColor] range:NSMakeRange(12, 15)]; /* This will change the color on the other characters starting from 12 to 15... */
txtLog.attributedText = Temp;
如果您愿意,也可以使用NSAttributedString而不是NSMutableAttributedString,但是如果需要,我可以使用Mutable附加字符串,因为在读取和写入UITextView字段时大多数情况都是如此。
我希望这有帮助,
亲切的问候 Heider Sati
答案 1 :(得分:1)
这个答案是在iOS 6发布之前以及UITextViews中对NSAttributedString的支持时给出的。
很抱歉,UITextView只能是纯文本。您只能设置全局应用于整个文本的文本和字体属性。
看看UITextView with Syntax Highlighting,这与您的情况有关。第一个答案为您提供了一个很好的概述和一些如何解决问题的建议。
答案 2 :(得分:0)
通常UITextView不允许使用多种颜色的文本。您应该实现自己的UITextView