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