Cuándo debo establecer la capa.shouldRasterize a SÍ


He visto correcciones para algunos problemas de retraso al establecer la propiedad layer de la vista

view.layer.shouldRasterize = YES;

Vi una gran diferencia en el rendimiento al usar un UICollectionView y preparar las celdas y establecer la propiedad.

No estoy seguro de cuáles son las implicaciones.

Sería genial obtener una explicación. ¡Gracias!

Author: Rob, 2013-10-16

1 answers

En WWDC 2012 Puliendo Sus Rotaciones de interfaz video (suscripción de desarrollador pagada necesaria), hablan sobre las ventajas e implicaciones de rasterizar capas. Este video es sobre un tema diferente (uno interesante, sin embargo), pero hablan de los pros y los contras de rasterizar versus snapshotting (a partir de unos 8 minutos en el video, dan algunos antecedentes sobre las relaciones entre la jerarquía UIView, el árbol de presentación y el árbol de renderizado, y luego bucean en una discusión de rasterización otros 6 minutos en el video).

Si tiene una vista compleja (es decir, relativamente cara de volver a renderizar) que está animando, pero para la que la vista animada no está cambiando, rasterizar la capa puede mejorar el rendimiento al no volver a renderizar la capa todo el tiempo. Pero lo hace a costa de la memoria (guardar una imagen rasterizada en memoria).

Pero, si anima un cambio dentro de la capa, el shouldRasterize puede adversamente afectar el rendimiento (porque va a volver a rasterizar la capa para cada fotograma de la animación).

Generalmente, si se anima un conjunto complejo de capas que, en sí mismas, no están cambiando, entonces puede establecer shouldRasterize a YES, hacer la animación y luego desactivar shouldRasterize.

 43
Author: Rob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-04 17:26:35