Lector de epub para manejar grandes archivos html

Estoy creando un lector de epub en la plataforma iOS. Básicamente, usa UIWebview para mostrar archivos epub, leí el código del Aepubreader de código abierto y descubrí que es muy bueno pero no está basado en texto. Quiero hacer que el texto se base y la página a su vez como iBooks. Así que trato de refinar el Aepubreader.

El flujo lógico básico es

descomprime el archivo epub.analizar los metadatos (opf, archivo toc).cargar archivos html por UIWebView y enlazarlos a UIPageViewController

Todo funciona bien excepto el rendimiento.

Suponiendo que el epub tiene diez archivos html (archivo1 - archivo10). file1 ~ file9 es de tamaño pequeño (como 100k), pero el archivo 10 es de 1MB. cuando leo la primera página del archivo 10, cuesta mucho tiempo cargar este archivo de 1 MB. Eso es aceptable ya que es la primera vez. Pero cuando paso a la segunda página del archivo10. Todavía necesito cargar este archivo de 1 MB nuevamente y llamar a un js para desplazar offsetx por número de página (no hay forma de copiar un UIWebView por documento oficial de Apple). Esto no es aceptable. No puedo dejar que el usuario siempre espere cuando gire la página en este archivo.

Finalmente obtuve una solución para evitar volver a cargar este gran archivo. Cuando me aparece la primera página de file10. Capturo esta vista visible como una imagen, pero no la visualizo, cuando paso a la página siguiente, muestro esta imagen para page1, mientras tanto, le doy la vista de UIwebview de page1 a page2. como Page2.view.addSubview (webviewfrompage1). Esto evitará recargar webview y ahorrará tiempo. Pero viene otro problema: Page2.view.addSubview (webviewfrompage1) causará page2 layoutsubview, lo que significa que page2 volverá a dibujar su vista para mostrar el contenido de la vista web. Este es un contenido de archivo de 1 MB, redibujar aún cuesta tiempo y se atascará la animación de giro de página. Busqué mucho pero todavía no tengo solución. Reviso los iBooks, funciona perfecto. ¿Cómo manejó el archivo grande?

Por favor, hágamelo saber si tiene alguna idea sobre esto. u otra solución para manejar la pantalla epub.

Gracias por adelantado

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

responder a torazaburo:

Sí, tienes toda la razón. Planeé usar window.scroll (offsetX, offsetY) para obtener el contenido de la página siguiente. Pero eso no es suficiente. Quiero que la página gire la animación como los ibooks. Por eso uso UIPageViewController. Usar UIPageViewController significa que tengo que implementar después de dos delegados

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

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

}

En cada deleagte, necesito asignar un controlador de vista, volver a cargar la url y configurar el desplazamiento en la página correspondiente. Por lo tanto, cada vez que se realiza un cambio de página, no solo se establece el desplazamiento del contenido, sino que se asigna una nueva vista de uiweb y se vuelve a cargar la URL, luego se establece el desplazamiento.

Torazaburo, ¿qué te parece?

Respuestas a la pregunta(0)

Su respuesta a la pregunta