Cocoa Touch: отображение структурированного документа - PullRequest
0 голосов
/ 14 марта 2011

Я довольно новичок в Какао, и у меня возникли проблемы с поиском лучшего способа разработки приложения для iPhone.

Это приложение предназначено для просмотра сцены.Он должен довольно напечатать сценарий так, чтобы заголовки символов были центрированы, например, маленькими заглавными буквами, а направления на сцене были выделены курсивом и т. Д. Он также должен позволять выделять строки одного символа (т. Е. Динамическое форматирование).

Просмотрна этот вопрос похоже, что NSTextView / NSTextStorage обеспечит требования к форматированию, которые я хочу, я просто запутался в том, как построить представление из базовых данных.

Я думаю, что на данный момент моим источником будет XML в следующей форме:

<script>
  <dialogue character="bob">Hello Sue!</dialogue>
  <stageDirection>He moves to the table</stageDirection>
  <dialogue character="sue">Hello Bob!</dialogue>
</script>

, который выведет что-то похожее на следующее:

      BOB
Hello Sue!

   He moves to the table

      SUE
Hello Bob!

Как мнеперейти от модели документа (XML / CoreData / ...) к представлению, содержащему довольно отформатированный текст?

Любой совет или указатели были бы хорошими;Я просто не могу разобраться с этой проблемой!

1 Ответ

1 голос
/ 14 марта 2011

Если интерактивность не требуется, то самый простой способ, о котором я могу подумать, - это сгенерировать HTML и отобразить его с помощью UIWebView.Динамическое выделение может быть выполнено с помощью stringByEvaluatingJavaScriptFromString:

ОБНОВЛЕНИЕ

Следующий относительно простой вариант - это создание стилизованного текста с отдельными UILabel с.В основном у вас есть массив текстовых записей (подсказки, направления сцены и т. Д.), Каждый со своим собственным стилем.Мы создаем массив соответствующих UILabel с примененными стилями и затем размещаем их в «представлении сценария».После этого мы можем поместить это «представление скрипта» в UIScrollView и все.Размер метки, необходимый для размещения определенного текста, можно определить с помощью sizeWithFont:constrainedToSize:lineBreakMode: из NSString.

Также доступны службы CoreText, но это гораздо более сложный вариант.

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