Для приложения для iPhone на iPhone мне нужно разбить произвольно длинные HTML-документы на страницы, которые помещаются точно на одном экране. Если я просто использую для этого UIWebView, то самые нижние строки будут отображаться только частично: остальные исчезают за границей представления.
Таким образом, я предполагаю, что мне нужно знать, сколько полных строк (или символов) будет отображаться UIWebView, учитывая исходный HTML, и затем передавать ему точно нужный объем данных. Это, вероятно, требует большого количества вычислений, и пользователь также должен иметь возможность изменять шрифты и размеры.
Я понятия не имею, возможно ли это, хотя такие приложения, как Stanza, берут файлы HTML (epub) и хорошо разбивают их на страницы. Прошло много времени с тех пор, как я смотрел на JavaScript, стоит ли рассматривать этот вариант?
Любые предложения очень ценятся!
обновление
Итак, я нашел возможное решение, использующее JavaScript для аннотирования DOM-дерева с размерами и позициями каждого элемента. После этого должна быть возможность реструктурировать дерево (используя встроенный XSLT или JavaScript), разделив его на страницы, которые точно помещаются на экране.
Остальной проблемой здесь является то, что это всегда разрывает страницу на границах абзаца, поскольку нет доступа к тексту на более низком уровне, чем P-элемент. Возможно, это можно исправить, разобрав текст на слова, инкапсулировав каждое слово в тег SPAN, повторив процедуру измерения, описанную выше, и затем отобразив только те элементы SPAN, которые помещаются на экран, вставив оставшиеся элементы в начале следующего стр.
Все это звучит довольно сложно. Я говорю какой-то смысл? Есть ли более простой способ?