2011-01-06 8 views
1

Ich versuche, eine einfache UIScrollView mit Paging zu erstellen. Und ich möchte in der Lage durch ein großes PDF-Dokument zu blättern, aber das gibt mir ein paar Probleme ...Paging ein UIScrollView mit einem großen PDF

ich folgende Möglichkeiten versucht:

  • konvertieren alle PDF-Seiten UIImages beim Start, diese funktioniert, aber ist sehr langsam beim Start
  • manuell die PDF-Seite in der drawRect zeichnen, aber wieder war langsam ...

Und ich lieber nicht alles beim Start laden, aber es während der tun Verwendung.

Hat das kürzlich jemand getan? Ich kann kein schönes Beispielprojekt finden.

Thnx!

Jelle

+0

Kontrolle zu laden: [github.com/vfr/Reader](http://github.com/vfr/Reader) Dieses Projekt deckt alles ab, was Sie gesagt haben. –

Antwort

1

Dieses Problem ist eines der bekanntesten Probleme beim PDF-Rendering. Die Lösung besteht darin, die begrenzte Anzahl von PDF-Seiten zwischenzuspeichern. Sie können nicht alle Seiten zwischenspeichern, wenn Sie größere PDF-Dateien haben, weil der Speicher der iOS-Geräte knapp ist.

Zum Beispiel verwendet Goodreader (eine der besten iOS PDF Reader-Anwendung) auch Caching-Mechanismus. Goodreader speichert 3 Seiten, wenn Sie die Seite umblättern; Sie haben jedoch Probleme, wenn Sie Seiten schneller umblättern. Da das Laden der neuen Seiten länger dauern muss.

Zuerst starten Sie mit der Lösung von Goodreader, wie Sie mit der vorherigen, aktuellen und nächsten Seite Caching starten. Wenn der Benutzer die Seite umklappt, sollten Sie die vorige oder nächste Seite zwischenspeichern.

Wenn ich ein Beispiel gebe;

Startpunkt (Load zwei Seiten in den Speicher mit Hintergrund-Thread aufgrund der Performance-Probleme):

prev = nil; 
current = page1; 
next = page2; 

Wenn der Benutzer auf die nächste Seite kippt;

prev = page1; 
current = page2; 
next = page3 //(Load into the cache); 

Mit dieser Lösung Logik, haben Sie die Chance mehr als 3 Seiten in Ihr Gedächtnis dieser heraus

Verwandte Themen