Voy a citar de Apple Doc y explico:
@property BOOL shouldRasterize
Cuando el valor de esta propiedad es SÍ, la capa es representa como un mapa de bits en su espacio de coordenadas local y luego a un material compuesto el destino con cualquier otro contenido. Los efectos de sombra y cualquier filtro en la propiedad de filtros están rasterizados e incluidos en el mapa de bits . Sin embargo, la opacidad actual de la capa no está rasterizada. Si el mapa de bits rasterizado requiere escala durante la composición, los filtros en las propiedades minificationFilter y magnificationFilter se aplican según sea necesario.
Básicamente, cuando shouldRasterize se establece en SÍ, se calcula cada píxel que formará la capa y toda la capa se almacena en caché como un mapa de bits.
- ¿Cuándo se beneficiará de ello?
Cuando solo tiene que dibujarlo una vez. Eso significa que necesitas solo una animación "simple" pura (por ejemplo, mover, transformar, escalar ...) porque CoreAnimation realmente usará esa capa sin volver a dibujarla en cada fotograma. Es una característica muy poderosa para almacenar en caché capas complejas (con sombras y radio de esquina) combinadas con CoreAnimation.
- ¿Cuándo te matará la velocidad de fotogramas?
Cuando su capa es reimpresa muchas veces, porque en la parte superior del dibujo que ya está haciendo efecto, la shouldRasterize
procesará todos los píxeles para almacenar en caché los datos de mapa de bits.
Así que la verdadera pregunta que debe hacerse es la siguiente: "¿En qué capa estoy aplicando el shouldRasterize
a SÍ? ¿Y con qué frecuencia se vuelve a dibujar esta capa?"
Espero que esto haya sido lo suficientemente claro.
Soy nuevo en iOS. Entonces, ¿shouldRasterize = YES es bueno si lo uso para UITableViewCells personalizadas? Gracias por esta gran respuesta por cierto. :) @apouche – GangstaGraham
diría que no, no es una buena idea rasterizar una UITableViewCell por dos razones: 1. Si usa un identificador de reutilización, la celda de la vista de tabla se volverá a dibujar muchas veces durante el desplazamiento (y, por lo tanto, el shouldRasterize penalizarlo aún más). 2: no se beneficiará de ello, ya que es muy raro animar una UITableViewCell. – apouche
@apouche espera, ¿estás diciendo que uses shouldRasterize si escalas? ¿Eso no solo escalará el caché del mapa de bits y luego dará como resultado una imagen fea? (¿escalando, por ejemplo?) –