2012-03-19 90 views
0

我需要UITextView,用户可以在插入时以多种颜色输入文本。例如,如果他输入XYZ,则颜色将为红色,如果他输入ABC,则它必须是蓝色。如何在UiTextView中输入多个颜色文本?

+0

plz向一些代码行,让您的问题.. – 2012-03-19 08:16:07

回答

1

这个答案是在iOS 6发布之前给出的,并且在UITextViews中支持NSAttributedString。

对不起,这是不可能的UITextView只是纯文本。您只能将全局文本和字体属性应用于整个文本。

看看UITextView with Syntax Highlighting,这与您的情况有关。第一个答案给你一个很好的概述和一些建议如何解决你的问题。

+1

感谢尼克您的帮助。我解决了它。请看看https://github.com/enormego/EGOTextView – Mangesh 2012-03-19 10:35:47

0

通常UITextView不允许有多种颜色的文本。您应该实现自己的UITextView

+0

感谢乔治,请看看http://github.com/enormego/EGOTextView。它也是这样做的。 – Mangesh 2012-03-19 10:37:10

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如果你喜欢,但是我用的是可变的,如果需要追加字符串,因为它大多情况下,当你阅读和写作入UITextView字段。

我希望这有助于

亲切的问候 海德萨提