EPUB Reader для обработки больших HTML-файлов

Я создаю epub reader на платформе IOS. По сути, он использует UIWebview для отображения файлов epub, я прочитал код Aepubreader с открытым исходным кодом и нахожу его очень хорошим, но не основанным на тексте. Я хочу, чтобы это было основано на тексте, а страница переворачивалась как iBooks. Поэтому я пытаюсь уточнить Aepubreader

Основной логический поток

разархивируйте файл epub.разбирать метаданные (opf, toc file).загрузить HTML-файлы с помощью UIWebView и связать его с UIPageViewController

Все работает хорошо, кроме производительности.

Предположим, у epub есть десять html-файлов (file1 - file10). Файл1 ~ файл9 имеет небольшой размер (например, 100 КБ), но размер файла 10 составляет 1 МБ. Когда я читаю первую страницу файла10, загрузка этого файла размером 1 МБ стоит много времени. Это приемлемо, так как это в первый раз. Но когда я перехожу ко второй странице файла10. Мне все еще нужно снова загрузить этот файл размером 1 МБ и вызвать js, чтобы прокрутить offsetx по номеру страницы (нет способа скопировать UIWebView для Apple Offical Document). Это не приемлемо. Я не могу позволить пользователю всегда ждать, когда перевернуть страницу в этом файле.

Наконец, я получил решение, чтобы избежать перезагрузки этого большого файла. Когда я получу первую страницу файла10 отображается. Я фиксирую этот видимый вид как изображение, но не отображаю его, когда я перехожу на следующую страницу, я отображаю это изображение для страницы 1, а тем временем я даю UIwebview со страницы 1 на страницу 2. как Page2.view.addSubview (webviewfrompage1). это позволит избежать перезагрузки веб-просмотра и сэкономит время. Но возникает другая проблема: Page2.view.addSubview (webviewfrompage1) вызовет layout2 layoutsubview, что означает, что page2 перерисовает свое представление для отображения содержимого веб-просмотра. Это содержимое файла размером 1 МБ, перерисовка по-прежнему стоит времени, и он застрянет на анимации переворачивания страницы. Я много искал, но все еще не нашел решения. Я проверяю iBooks, он отлично работает. Как он обработал большой файл?

Пожалуйста, дайте мне знать, если у вас есть какие-либо мысли по этому поводу. или другое решение для обработки дисплея epub.

заранее спасибо

-------------------------------------------------- -------------------------------------------

ответить на торазабуро:

Да, вы абсолютно правы. Я планировал использовать window.scroll (offsetX, offsetY), чтобы получить содержимое следующей страницы. Но этого недостаточно. Я хочу, чтобы анимация перелистывания страниц была похожа на ibooks. Поэтому я использую UIPageViewController. Использование UIPageViewController означает, что я должен реализовать следующие два делегата

- (UIViewController *) pageViewController: (UIPageViewController *) pageViewController viewControllerAfterViewController: (UIViewController *) viewController {}

(UIViewController *) pageViewController: (UIPageViewController *) pageViewController viewControllerBeforeViewController: (UIViewController *) viewController {

}

В каждом случае, мне нужно выделить viewcontroller, перезагрузить URL и установить смещение для соответствующей страницы. Таким образом, каждый раз, когда страница переворачивается, она не просто устанавливает смещение для контента, но выделяет новый uiwebview и перезагружает URL, а затем устанавливает смещение.

торазабуро, что ты думаешь?

Ответы на вопрос(0)

Ваш ответ на вопрос