Ich habe eine Paging UIScrollView
mit einer contentSize groß genug, um eine Reihe von kleinen UIScrollViews zum Zoomen zu halten, Die viewForZoomingInScrollView
ist eine ViewController, die eine CALayer zum Zeichnen einer PDF-Seite enthält. Dadurch kann ich ähnlich wie der I-Buch-PDF-Reader durch ein PDF-Dokument navigieren.CALayer und Off-Screen Rendering
Der Code, der die PDF (mit Ziegeln gedeckt Layers) zieht befindet sich in:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
Und einfach eine ‚Seite‘ Hinzufügen von dem sichtbaren Bildschirm ruft automatisch diese Methode. Wenn ich die Seite ändere, gibt es eine Verzögerung, bevor alle Kacheln gezeichnet wurden, obwohl das Objekt (Seite) bereits erstellt wurde.
Ich möchte in der Lage sein, die nächste Seite zu rendern, bevor der Benutzer zu ihm scrollt, wodurch der sichtbare Kacheleffekt verhindert wird. Ich habe jedoch festgestellt, dass das Hinzufügen der Ebene zu der Bildlaufansicht die drawLayer
nicht aufruft, wenn die Ebene außerhalb des Bildschirms befindet.
Irgendwelche Ideen/gemeinsame Probleme hier?
Ich habe versucht:
[viewController.view.layer setNeedsLayout];
[viewController.view.layer setNeedsDisplay];
NB: Die Tatsache, dass dies die iBooks funktionell im Rahmen des vollständigen App repliziert irrelevant ist.
Sie müssen 'UIGraphicsEndImageContext' aufrufen, bevor Sie zurückkehren. – Jason
danke für den Fang Jason –