UITextView - изменение выделенного текста - PullRequest
0 голосов
/ 06 июля 2011

У меня есть UITextView, и я хочу выделить определенную часть этого текста и изменить его стиль. Как изменение цвета, выделение курсивом или полужирным шрифтом, увеличение размера шрифта или изменение семейства шрифтов.

Любая помощь?

Ответы [ 3 ]

0 голосов
/ 16 июля 2011

Вы можете использовать некоторые альтернативные вещи следующим образом: -

  • Сначала возьмите вид прокрутки и добавьте метку или другой текстовый вид с другим стилем, как вам нужно, жирным шрифтом или цветом чагне и добавьте как подпредставление в виде прокрутки.
  • Для текстовых представлений, добавленных в представление прокрутки, вы должны взять кадр этого текстового представления больше текста или строк в текстовом представлении, чтобы остановить прокрутку в просмотре текста, потому что мы уже добавили текстовое представление в просмотре прокрутки для лучшего вида.
  • Итак, возьмите столько текстовых представлений, меток или изображений, сколько вам нужно, и добавьте их в список прокрутки. Все очень просто. Это можно сделать с помощью построителя интерфейса. Просто нужно определить идеальный размер контента для прокрутки, зависит от ваших подпредставлений.
0 голосов
/ 28 октября 2014

Вы должны использовать shouldChangeTextInRange.Это потому, что вам нужен диапазон, чтобы найти место, где вы хотите, чтобы текст был изменен.
UITextView позволяет сохранить ваш стиль в textView.attributedString.
. Решение состоит в том, чтобы получить строку атрибута textView и заменить в нем нужную подстроку.с измененным или стилизованным текстом.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{

     NSMutableAttributedString *textViewText = [[NSMutableAttributedString alloc]initWithAttributedString:textView.attributedText];   //gets textView style string

     NSRange selectedTextRange = [textView selectedRange];
     NSString *selectedString = [textView textInRange:textView.selectedTextRange]; //our selected text 

    //lets say you always want to make selected text bold
    UIFont *boldFont = [UIFont boldSystemFontOfSize:self.txtNote.font.pointSize];

    NSDictionary *boldAttr = [NSDictionary dictionaryWithObject:boldFont forKey:NSFontAttributeName];

    NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc]initWithString:selectedString attributes:boldAttr]; //make attributed string of our selectedtext

    [textViewText replaceCharactersInRange:range withAttributedString:attributedText]; // replace
    textView.attributedText = textViewText;

    return false;
}
0 голосов
/ 06 июля 2011

Да.Ждите iOS 5. Я думаю, что большая часть информации об iOS 5 все еще находится под NDA, поэтому мы не можем обсуждать это здесь.

Или разработать все это самостоятельно с CoreText.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...