Tengo una megafonía UIScrollView
con un tamaño de contenido lo suficientemente grande como para contener un número pequeño de UIScrollViews para acercar, el viewForZoomingInScrollView
es un control de vista que contiene un CALayer para dibujar una página PDF. Esto me permite navegar a través de un PDF muy parecido al lector de PDF ibooks.CALayer y Representación fuera de pantalla
El código que dibuja el PDF (capas de azulejos) se encuentra en:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
y simplemente añadiendo una 'página' de la pantalla visible llama a este método de forma automática. Cuando cambio de página, hay un poco de retraso antes de que se dibujen todas las teselas, aunque el objeto (página) ya se haya creado.
Lo que quiero hacer es renderizar la página siguiente antes de que el usuario se desplace hacia ella, evitando así el efecto de mosaico visible. Sin embargo, he encontrado que si la capa está ubicada fuera de la pantalla, al agregarla a la vista de desplazamiento no se llama al drawLayer
.
¿Alguna de estas ideas/ideas comunes aquí?
que he intentado:
[viewController.view.layer setNeedsLayout];
[viewController.view.layer setNeedsDisplay];
Nota: El hecho de que este está replicando los iBooks funcionalmente es irrelevante en el contexto de la aplicación completa.
Debe llamar a 'UIGraphicsEndImageContext' antes de devolver. – Jason
gracias por la atrapada Jason –