Ich habe ein Paging UIScrollView
mit einer contentSize, das groß genug ist, um eine kleine Anzahl kleiner UIScrollViews zum Zoomen zu enthalten. Das viewForZoomingInScrollView
ist ein viewController mit einem CALayer zum Zeichnen einer PDF-Seite. Dadurch kann ich ähnlich wie der I-Buch-PDF-Reader durch ein PDF-Dokument navigieren.
Der Code zum Zeichnen der PDF (Tiled Layers) befindet sich in:
%Vor%Und das Hinzufügen einer "Seite" zum sichtbaren Bildschirm ruft diese Methode automatisch auf. Wenn ich die Seite ändere, gibt es eine Verzögerung, bevor alle Kacheln gezeichnet werden, obwohl das Objekt (Seite) bereits erstellt wurde.
Was ich tun möchte, ist die nächste Seite zu rendern, bevor der Benutzer dorthin scrollt, wodurch der sichtbare Kacheleffekt verhindert wird. Allerdings habe ich festgestellt, dass, wenn der Layer außerhalb des Bildschirms liegt, das Hinzufügen zum Scrollview den drawLayer
nicht aufruft.
Irgendwelche Ideen / häufige Probleme hier?
Ich habe es versucht:
%Vor%Hinweis: Die Tatsache, dass das I-Buch funktional repliziert wird, ist im Zusammenhang mit der vollständigen App nicht relevant.
Wie oben erwähnt, werden CALayers nicht gerendert, wenn sie sich außerhalb des Bildschirms befinden.
Ich habe die PDF-Datei nicht direkt auf die Ebene gezeichnet, sondern die PDF-Seite bei Bedarf zu einem Bild gerendert (rendert 1 Seite plus und minus eine der fokussierten Seiten)
Hier ist der Rendercode:
%Vor%Tags und Links ipad cocoa-touch uiscrollview calayer quartz-graphics