как сделать текст UITextView выделенным жирным шрифтом и не кликабельным
Вопрос
У меня есть следующий HTML-код в UITextView
и хотел бы преобразовать его в UITextView
мое тело для записки
<a href="/arc/item/21">food item - more item stuff</a>;`
Позвольте мне добавить:в данный момент он отображается синим цветом, подчеркнутым и не кликабельным.Я бы хотел сделать его выделенным жирным шрифтом и не кликабельным.Я прочитал документы, касающиеся linkTextAttributes
но, не использовав это, я немного не понимаю, и я действительно не вижу никакого простого способа манипулировать этим.Как бы мне просто выделить приведенную выше ссылку жирным шрифтом и черным цветом (не синим) и сохранить некликабельный характер?
Решение
Обновить (решение с использованием Атрибуты linkTextAttributes UITextView в UITextView)
self.testTextView.editable = NO;
self.testTextView.selectable = YES;
self.testTextView.userInteractionEnabled = NO; // workaround to disable link - CAUTION: it also disables scrolling of UITextView content
self.testTextView.dataDetectorTypes = UIDataDetectorTypeLink;
self.testTextView.linkTextAttributes = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:14.0f], // NOT WORKING !?
NSForegroundColorAttributeName : [UIColor redColor]};
...
self.testTextView.text = @"Lorem ipsum http://www.apple.com Lorem ipsum";
Как вы можете видеть в комментариях, мне не удалось установить новый шрифт для linkTextAttributes , хотя атрибут color работал должным образом.
Если вам может сойти с рук атрибут color или какой-либо другой текстовый атрибут для оформления ваших URL-адресов, и вам не нужно беспокоиться об отключенной прокрутке UITextView, то это может быть вашим решением.
Предыдущая страница (альтернативное решение)
Если вы используете Storyboard / xib, убедитесь, что вы отменили выбор Обнаружение -> Ссылки для вашего UITextView.Вы можете сделать свою ссылку выделенной жирным шрифтом, установив для шрифта контейнера какой-либо полужирный шрифт.Если вы хотите поддерживать разные стили текста / шрифта в одном строковом объекте, то вам действительно следует искать NSAttributedString - атрибут строки или NSMutableAttributedString - изменяемая строка.
Пример:
UIFont *linkFont = [UIFont fontWithName:@"SomeBoldTypeface" size:12];
NSString *link = @"food item - more item stuff";
NSMutableAttributedString *someString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"is my body for the note %@; let me ad", link]];
[someString addAttribute:NSFontAttributeName value:linkFont range:NSMakeRange(24, link.length)];
UITextView *textView = [[UITextView alloc] init];
textView.attributedText = someString;
...