When should I set layer.shouldRasterize to YES

IosUiviewUicollectionviewRasterizing

Ios Problem Overview


I've seen fixes for some lagyness issues by setting the layer property of the view

view.layer.shouldRasterize = YES;

I saw a great difference in performance when using a UICollectionView and preparing the cells and setting the propery.

Not sure what the implications are.

Would be great to get an explanation. Thanks!

Ios Solutions


Solution 1 - Ios

In WWDC 2012 Polishing Your Interface Rotations video (sadly, no longer available online) they talked about the advantages and implications of rasterizing layers.

Bottom line if you have a complex view (i.e. relatively expensive to re-render) that you are animating, but for which the animated view is not itself changing, rasterizing the layer can improve the performance by not re-rendering the layer all the time. But it does this at the cost of memory (saving a rasterized image in memory).

But, if you animate a change within the layer, the shouldRasterize can adversely affect performance (because it's going to re-rasterize the layer for each frame of the animation).

Generally, if animating a complex set of layers that, themselves, are not changing, then you can set shouldRasterize to YES, do the animation, and then turn off shouldRasterize.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAvner BarrView Question on Stackoverflow
Solution 1 - IosRobView Answer on Stackoverflow