2009-09-17 2 views
5

Мне было интересно, может ли UITextView отображать богатый текст? Я хочу иметь простое форматирование только для текста с текстом (например, для разных частей текста). если нет, какую точку зрения я должен использовать?UITextView Богатый текст?

ответ

2

Как правило, лучший способ сделать это - использовать UIWebView и загружать локальный контент там, где вы можете вставлять теги и все, что вам нужно. Локальная загрузка должна быть быстрой, и вы можете стилизовать ее, чтобы выглядеть как любой uitextview.

Другой вариант - использовать подкласс UILabel вместо этого и получить код открытого кода Three20. Вы хотите TTStyledTextLabel.

+0

Могу ли я создать html на лету и загрузить его в представление? –

+0

Да, вы можете его сгенерировать и загрузить, когда захотите, вам просто нужно написать код, который будет генерировать строку html – coneybeare

2

Вот фрагмент кода для тех, кто пытается это сделать - используйте uiwebview для обработки стилизованного текста - получение ваших локальных js-файлов для работы может быть трюком. Просто зайдите в Build Phases -> Compile Sources -> и добавьте файлы js, которые вы хотите получить локально в своем html-контенте. Вы также можете оценить строки как javascript из объектива c в своем веб-просмотре.

NSString *someHtmlContent = [NSString stringWithFormat:@"<html><head><style type=\"text/css\">body {padding: 0px; margin: 0px; }</style><script src=\"yourLocalJsFile.js\"></script></head><body></body></html>", dynamicText]; 

NSLog(@"HTML with code: \n%@", someHtmlContent); 

NSString *resourcePath = [[[[NSBundle mainBundle] resourcePath] 
           stringByReplacingOccurrencesOfString:@"/" withString:@"//"] 
           stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 

[MyWebView loadHTMLString:someHtmlContent baseURL:[NSURL URLWithString: 
              [NSString stringWithFormat:@"file:/%@//", resourcePath]]]; 

[self.MyWebView setDelegate:self]; 

Установка Делегат позволяет вам решить, как обрабатывать ссылки - вы хотите, чтобы открыть в мобильном сафари или в WebView

1

Вы можете посмотреть на EGOTextView проекта на GitHub. Он описывает себя как

«Полное сокращение для замены UITextView, добавление поддержки для редактирования ».

+0

. Ссылка https://github.com/enormego/EGOTextView – Andy

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