2012-03-19 48 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字段。

我希望這有助於

親切的問候 海德薩提

相關問題