2014-02-21 2 views
1

Я работаю над встроенным руководством для своего приложения, где хочу разместить некоторые заголовки и абзацы текста, поддерживающие динамический тип.iOS7 UITextView с несколькими стилями абзаца из файла

Каков самый простой способ использования одного UITextView? (Текст предпочтительно загружается из отдельного текстового файла).

Существует много подходов к этому:

  • UIWebViews (за убийство ??)
  • UITextView и NSAttributedString?
  • Текстовый набор - который кажется громоздким для этой простой задачи?

Example of desired layout/functionality

+0

Вы можете сделать довольно приличное форматирование и встроенные изображения с помощью NSAttributedStrings и UITextView - см. Здесь более подробную информацию http://ossh.com.au/design-and-technology/software-development/implementing-rich-text-with- images-on-os-x-and-ios/ –

+0

Btw вы можете использовать формат RTF. –

ответ

1

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

NSString *path = [[NSBundle mainBundle] pathForResource:@"info" ofType:@"html"]; 
NSString *file = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL]; 
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]; 
[self.webView loadHTMLString:file baseURL:baseURL]; 

Использование BaseUrl трюк позволит вам использовать даже внутри HTML и иметь его найти изображения в вашем приложении пачке.

+0

Спасибо, что поделились трюком baseURL! Я вернусь к вам, когда узнаю, с каким решением идти. –

1

Использование UITextView должно предоставить вам то, что вам нужно. Прочитайте текст из вашего файла и установите шрифт в соответствии с размером категории, определенным пользователем. Начиная с iOS7, вы можете загрузить простой HTML-файл в качестве атрибутной строки, используя initWithFileURL:options:documentAttributes:error:, поэтому вы можете установить простые стили и текст внутри файла. Используйте font:-apple-system-headline;, font:-apple-system-subheadline; и font:-apple-system-body; как ваш шрифт в HTML, чтобы получить правильный шрифт в атрибутной строке при чтении HTML-файла.

Вы можете слушать UIContentSizeCategoryDidChangeNotification уведомления, чтобы услышать, когда пользователь изменил свою предпочитаемую категорию, и установите шрифт или перезагрузите данные соответствующим образом.

+0

Спасибо, я дам этот снимок - поддерживает ли он теги или ограничивается только UIWebViews? –

+0

'img' плохо обрабатывается при преобразовании из HTML в атрибутные строки, если изображения не встроены в base64. Для небольших изображений это нормально, но для более крупных проблем это становится проблематичным. –

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