Przechwytywam dane tekstowe z plików XML i chcę, aby wyświetlały się w formacie podobnym do strony książki wewnątrz urządzenia UIWebView
na iPadzie. Pliki XML wychodzą z .epub
, a każdy z nich zawiera pojedynczy rozdział książki, podzielony tylko na tagi p.Pagórka w stylu Ereadera
Chcę dynamicznie paginate te pliki na stronach książki, jak na podstawie wielkości UIWebView
, który jest pełen ekran iPada, a także przez wybranego przez użytkownika rozmiaru czcionki. Aktualnie ładuję pustą stronę html z powiązanym plikiem css do UIWebView
, chwytając akapity w oparciu o liczbę znaków jako napisy z pliku XML i drukując je w html przy użyciu StringByEvaluatingJavaScriptFromString
i właściwości innerHTML.
Oczywiście robi to według liczby znaków, tworząc niepoprawnie rozmieszczone, dziwnie sformatowane strony, ale nie jestem pewien, jak inaczej "paginować" tekst.
Co chcę zrobić, to coś podobnego do aplikacji "eReader" na iPadzie: http://www.ereader.com/. Wygląda na to, że dzieliją jeden plik na strony dynamicznie i ładują go do UIWebView
s. Jak to się robi?
Jest to bardzo interesujące i zdecydowanie pomocne. Kolejne pytania to: czy CSS "zmaterializuje" cały rozdział, czy istnieje sposób na dostęp i edycję zawartości kolumny przez DOM, aby dynamicznie zmieniać numery stron itp.? Co więcej, w jaki sposób ogranicza się użytkownikowi swobodne przewijanie w poziomie w widoku, aby "zablokować" je w celu przeglądania jednej strony na raz? – Chris
Również kolumny CSS3 działają dziwnie, gdy chcemy zwiększyć szerokość kolumny (powiedzmy, o rozmiarze okna iPada). Jakie jest twoje rozwiązanie? Zadałem osobne pytanie: http: //stackoverflow.com/questions/4217936/css3-columns-and-uiwebview – Chris
To naprawdę ciekawe podejście. Czy potrafisz obsłużyć wbudowane kolumny EPUB przy użyciu tego podejścia, czy też złamałoby to sztuczkę "paginacji"? –