ios - ¿Cuándo debería establecer layer.shouldRasterize en YES?
uiview uicollectionview (1)
He visto soluciones para algunos problemas de lagrimeo estableciendo la propiedad de capa de la vista
view.layer.shouldRasterize = YES;
Vi una gran diferencia en el rendimiento al usar un UICollectionView y preparar las celdas y configurar las propiedades.
No estoy seguro de cuáles son las implicaciones.
Sería genial obtener una explicación. ¡Gracias!
En WWDC 2012, pulir su video de las rotaciones de la interfaz (se necesita una suscripción de desarrollador paga), hablan de las ventajas y las implicaciones de las capas rasterizadas. Este video trata un tema diferente (aunque interesante), pero sí hablan sobre los pros y los contras de rasterizar versus instantáneas (a partir de los 8 minutos del video se dan algunos antecedentes sobre las relaciones entre la jerarquía de UIView
, la presentación árbol, y el árbol de renderizado, y luego sumergirse en una discusión de rasterización otros 6 minutos en el video).
En pocas palabras, si tiene una vista compleja (es decir, relativamente costosa de re-renderizar) que está animando, pero para la cual la vista animada no está cambiando, rastrillar la capa puede mejorar el rendimiento al no volver a renderizar la capa todo el tiempo . Pero lo hace a costa de la memoria (guardando una imagen rasterizada en la memoria).
Pero, si anima un cambio dentro de la capa, el shouldRasterize
puede afectar negativamente el rendimiento (porque va a volver a rasterizar la capa para cada fotograma de la animación).
Por lo general, si se anima un conjunto complejo de capas que, por sí mismas, no cambian, se puede configurar shouldRasterize
en YES
, hacer la animación y luego desactivarlo.