J'ai un pagination UIScrollView
avec un contentSize suffisamment grand pour contenir un certain nombre de petits UIScrollViews pour le zoom, Le viewForZoomingInScrollView
est un viewController qui contient un CALayer pour dessiner une page PDF sur. Cela me permet de naviguer à travers un PDF un peu comme le lecteur PDF ibooks.CALayer et le rendu hors-écran
Le code qui dessine le PDF (Couches carrelés) se trouve dans:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
Et simplement en ajoutant une « page » à l'écran visible appelle cette méthode automatiquement. Lorsque je change de page, il y a un certain délai avant que toutes les tuiles soient dessinées, même si l'objet (page) a déjà été créé. Ce que je veux être en mesure de faire est de rendre la page suivante avant que l'utilisateur ne défile dessus, empêchant ainsi l'effet de mosaïque visible. Cependant, j'ai trouvé que si le calque est situé hors écran en l'ajoutant à la scrollview n'appelle pas le drawLayer
.
Des idées/des pièges courants ici?
J'ai essayé:
[viewController.view.layer setNeedsLayout];
[viewController.view.layer setNeedsDisplay];
NB: Le fait que cette réplique la ibooks est fonctionnellement hors de propos dans le contexte de l'application complète.
Vous devez appeler 'UIGraphicsEndImageContext' avant de retourner. – Jason
merci pour la prise Jason –