Ich nehme Textdaten aus XML-Dateien und möchte, dass sie in einem Buchseiten-ähnlichen Format in einem UIWebView
auf dem iPad angezeigt werden. Die XML-Dateien stammen aus einem .epub
, und jedes enthält ein einzelnes Kapitel eines Buchs, das nur durch p-Tags unterteilt ist.
Ich möchte diese Dateien dynamisch in buchähnliche Seiten paginieren, basierend auf der Größe des UIWebView
, also eines vollständigen iPad-Bildschirms, sowie der vom Benutzer gewählten Schriftgröße. Ich lade gerade eine leere HTML-Seite mit zugehörigem css in ein UIWebView
, schnappe Absätze basierend auf der Anzahl von Zeichen als Strings aus dem XML und drucke diese in den HTML-Code mit StringByEvaluatingJavaScriptFromString
und der innerHTML-Eigenschaft.
Wenn Sie dies anhand der Anzahl der Zeichen tun, entstehen natürlich nicht richtig formatierte Seiten, aber ich bin mir nicht sicher, wie ich den Text sonst "paginieren" soll.
Was ich zu tun suche, ist etwas wie die App "eReader" auf dem iPad: Ссылка . Sie scheinen eine einzelne Datei dynamisch in Seiten zu zerlegen und sie in UIWebView
s zu laden. Wie wird das gemacht?
Die meisten EPUB-Reader, die auf UIWebView
basieren, verwenden einfach CSS3-Spalten, um das Dokument zu paginieren.
Sie können dies in Aktion bei Ссылка
sehenDie Grundidee ist, dass Sie das Dokument "columnize" und dann horizontal scrollen, um eine bestimmte Seite anzuzeigen.
Nachdem wir dies für eine beliebte (kanadische) eReader-Anwendung auf dem iPhone und iPad getan haben, kann ich Ihnen sagen, dass die Technik funktioniert, aber dass sie weit davon entfernt ist, ideal zu sein.
Der Code ist bereits vergeben. Es heißt epubjs. Es ist Javascript nur epub Leser.
Verwenden Sie UITextView mit PageviewController. (Geben Sie ggf. Ihre Zweifel an)
Tags und Links objective-c ios xml epub uiwebview