Ho un cercapersone UIScrollView
con un contentSize grande abbastanza da contenere un numero di piccole UIScrollViews per lo zoom, Lo viewForZoomingInScrollView
è un viewController che contiene un CALayer per disegnare una pagina PDF. Questo mi permette di navigare attraverso un PDF molto simile al lettore PDF di ibooks.CALayer e Off-Screen Rendering
Il codice che disegna il PDF (Layers piastrelle) si trova in:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
E la semplice aggiunta di una 'pagina' alla schermata visibile chiama questo metodo automaticamente. Quando cambio pagina, c'è qualche ritardo prima che tutte le tessere vengano disegnate, anche se l'oggetto (pagina) è già stato creato.
Quello che voglio essere in grado di fare è rendere la pagina successiva prima che l'utente vi scorra, impedendo così l'effetto di piastrellatura visibile. Tuttavia, ho scoperto che se il livello si trova fuori schermo aggiungendolo alla scrollview non si chiama il numero drawLayer
.
Qualche idea/bagaglio comune qui?
ho provato:
[viewController.view.layer setNeedsLayout];
[viewController.view.layer setNeedsDisplay];
NB: Il fatto che questo sta replicando i iBook funzionalmente è irrilevante nel contesto della piena applicazione.
È necessario chiamare 'UIGraphicsEndImageContext' prima di tornare. – Jason
grazie per la cattura Jason –