ios-什么时候应该将layer.shouldRasterize设置为YE

我已经通过设置视图的layer属性看到了一些延迟问题的修复程序

view.layer.shouldRasterize = YES;

使用UICollectionView并准备单元格并设置属性时,我看到了性能上的巨大差异。

不知道这意味着什么。

得到一个很好的解释。谢谢!

Avner Barr asked 2020-06-27T22:42:51Z
1个解决方案
57 votes

在WWDC 2012的“优化界面旋转”视频(需要付费的开发人员订阅)中,他们讨论了栅格化图层的优点和含义。 该视频的主题不同(尽管很有趣),但他们确实谈到了光栅化与快照的优缺点(从视频开始约8分钟,他们提供了有关shouldRasterize层次结构,演示文稿之间关系的一些背景知识 树和渲染树,然后在视频中再花6分钟深入讨论光栅化)。

底线是如果您要设置动画的复杂视图(即重新渲染的成本相对较高),但动画视图本身并未改变,则对图层进行栅格化可以通过不始终重新渲染图层来提高性能 。 但这是以内存为代价的(将光栅化的图像保存在内存中)。

但是,如果为图层中的变化设置动画,则2942054033733739219968会对性能产生不利影响(因为它将为动画的每个帧重新栅格化图层)。

通常,如果动画化一组本身没有变化的复杂图层,则可以将2942054033739219961996设置为YES,进行动画处理,然后关闭shouldRasterize

Rob answered 2020-06-27T22:43:25Z
translate from https://stackoverflow.com:/questions/19405741/when-should-i-set-layer-shouldrasterize-to-yes