如何在UiTextView中输入多种颜色的文本?

时间:2012-03-19 08:10:43

标签: iphone ios textbox uitextview

我需要UITextView,用户可以在插入时以多种颜色输入文本。例如,如果他输入XYZ,那么颜色将为红色,如果他输入ABC则必须为蓝色。

3 个答案:

答案 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