Мое определение
Необходимо сгенерировать описание преступника и последнего места, где его видели, в формате HTML. К описанию применяется базовое оформление CSS. Мы используем CSS для прорисовки «разлинованного листа» в представлении (вместо фонового изображения). Изображение кнопки, которой листок приколот к доске, задается прямо в CSS, поэтому оно остается с UlWebView и перемещается масштабируется так, как потребуется для представления.
Для этого нам понадобится внести пару изменений. Прежде всего элементы UITextView следует заменить элементами UlWebView. Это делается элементарно. Следующее действие — генерирование кода HTML. Воспользуемся методом stringWithFormat класса NSString. Обычно код HTML и CSS пишется и проверяется в браузере или редакторе HTML, после чего перемещается в программный код. Код HTML, который получился у нас, приведен на следующей странице.
Остается приказать новым элементам UlWebView загрузить код HTML методом loadHTMLString. Так как мы используем локальный файл CSS, элементу UlWebView нужно передать базовый адрес, ссылающийся на ресурсный пакет приложения. После этого UlWebView сделает все остальное. Давайте продолжим работу.
Начнем с замены элементов UlTextView на UlWebView с HTML. Строку со ссылкой на CSS пока не включайте, вскоре мы доберемся и до нее.
Удалите два текстовых поля и замените их элементами UlWebView.
Отключите режим редактирования User Interaction Enabled и снимите пометку «opaque» на панели Utilities для обоих элементов UlWebView. Не забудьте о ссылках IBOutlet для этих элементов, измените их типы в заголовочном файле, а потом снова создайте связь в Interface Builder. После этого задайте им прозрачный цвет фона в viewDidLoad.
Выполните рефакторинг и напишите метод prepareFugitiveDescription.
Метод должен подготовить описание преступника в формате HTML и определить константу #define на случай, если данные преступника отсутствуют.
Выполните рефакторинг и напишите метод prepareMapDescription.
Метод должен подготовить описание местонахождения преступника в формате HTML и определить константу #define на случай, если данные о местонахождении отсутствуют.
Загрузите код HTML 5 updateDossier и viewDidLoad.
Теперь, когда у нас имеются методы для создания HTML-версий описаний, необходимо обновить методы updateDossier и viewDidLoad. Они должны приказать UlWebView загрузить свой контент из строки в формате HTML (вместо простого присваивания строки, как это делалось ранее для текстового поля).
Удалите два текстовых поля и замените их элементами UlW/ebView.
Отключите режим редактирования User Interaction Enabled и снимите пометку «opaque» на панели Utilities для обоих элементов UlWebView.
- Дата: 13-01-2015, 17:32