2012-03-19 2 views
0

Мне нужен UITextView, где пользователь может вводить текст в несколько цветов во время вставки. Например, если он войдет в XYZ, тогда цвет будет красным, если он войдет в ABC, тогда он должен быть синим.Как ввести несколько цветов в UiTextView?

+0

плз отправить несколько строк кода, чтобы получить ваш вопрос .. –

ответ

1

Этот ответ был дан до выпуска iOS 6 и поддержки NSAttributedString в UITextViews.

Извините, это не возможно UITextView - это простой текст. Вы можете устанавливать только атрибуты текста и шрифта глобально, применяя ко всему тексту.

Посмотрите на UITextView with Syntax Highlighting, это связано с вашей ситуацией. Первый ответ дает вам хороший обзор и некоторые рекомендации по решению вашей проблемы.

+1

спасибо Ник для вас помощь. Я решил это. Пожалуйста, посмотрите на https://github.com/enormego/EGOTextView – Mangesh

0

Обычный UITextView не позволяет иметь текст в нескольких цветах. Вы должны реализовать свой собственный UITextView

+0

Спасибо, Джордж, пожалуйста, посмотрите на http://github.com/enormego/EGOTextView. Он делает то же самое. – Mangesh

2

Не уверен, что это помогает, с IOS 6 теперь вы можете изменить атрибуты, которые технически включают шрифты и цвета. Я был успешным с изменением шрифтов для части текста, но, видя проблему с изменением цвета, во всяком случае ниже, это способ пойти на случай, если Apple применит какое-либо изменение к этому когда-нибудь, поскольку 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.

Я надеюсь, что это помогает,

С наилучшими пожеланиями Хайдер Сати

Смежные вопросы