Quand dois-je mettre de couche.shouldRasterize OUI
J'ai vu des correctifs pour certains lagyness questions en définissant la propriété de calque de la vue
view.layer.shouldRasterize = YES;
J'ai vu une grande différence dans la performance lors de l'utilisation d'un UICollectionView et de préparer les cellules et le réglage de la propery.
Pas sûr de ce que seront les conséquences.
Serait formidable pour obtenir une explication.
Merci!
Vous devez vous connecter pour publier un commentaire.
Dans la WWDC 2012 Polissage De Votre Interface Rotations vidéo (payé développeur abonnement nécessaire), ils en parlent sur les avantages et les implications de la pixellisation des couches. Cette vidéo est sur un autre sujet (intéressant, tout de même), mais ils parlent des avantages et des inconvénients de pixellisation contre instantanés (à partir d'environ 8 minutes dans la vidéo, ils donnent un peu de fond sur les relations entre les
UIView
hiérarchie, la présentation de l'arbre, et le rendu de l'arbre, et ensuite plonger dans une discussion de tramage encore 6 minutes dans la vidéo).Ligne de fond si vous avez un complexe de vue (c'est à dire relativement coûteux pour les rendre à nouveau) que vous animez, mais dont la vue animée n'est pas lui-même changeant, pixelliser le calque peut améliorer les performances par pas de ré-rendu de la couche tout le temps. Mais il le fait au prix de la mémoire (de l'enregistrement d'un tramage de l'image en mémoire).
Mais, si vous animez un changement à l'intérieur de la couche, la
shouldRasterize
peut nuire à la performance (parce qu'il va re-pixelliser le calque pour chaque image de l'animation).Généralement, si l'animation d'un ensemble complexe de couches qui, eux, ne changent pas, alors vous pouvez définir
shouldRasterize
àYES
, faire de l'animation, puis éteignezshouldRasterize
.