我啥时候应该将 layer.shouldRasterize 设置为 YES

Posted

技术标签:

【中文标题】我啥时候应该将 layer.shouldRasterize 设置为 YES【英文标题】:When should I set layer.shouldRasterize to YES我什么时候应该将 layer.shouldRasterize 设置为 YES 【发布时间】:2013-10-16 14:10:33 【问题描述】:

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

view.layer.shouldRasterize = YES;

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

不确定有什么影响。

如果能得到解释就太好了。 谢谢!

【问题讨论】:

【参考方案1】:

在 WWDC 2012 抛光界面旋转视频(遗憾的是,不再在线提供)中,他们谈到了栅格化图层的优势和影响。

如果您有一个复杂的视图(即重新渲染相对昂贵)并且您正在制作动画,但动画视图本身并没有改变,那么光栅化图层可以通过不重新渲染图层来提高性能每时每刻。但它会以内存为代价(将光栅化图像保存在内存中)。

但是,如果您对图层内的更改进行动画处理,shouldRasterize 会对性能产生不利影响(因为它将为动画的每一帧重新光栅化图层)。

一般来说,如果动画一组复杂的图层本身不会发生变化,那么您可以将shouldRasterize 设置为YES,制作动画,然后关闭shouldRasterize

【讨论】:

以上是关于我啥时候应该将 layer.shouldRasterize 设置为 YES的主要内容,如果未能解决你的问题,请参考以下文章

我啥时候应该使用“隐藏文本框”,啥时候应该使用(html 5)“数据属性”?

我啥时候应该在 JavaScript 中使用 delete vs 将元素设置为 null? [复制]

我啥时候应该销毁令牌[关闭]

我啥时候应该使用装饰器?

我啥时候应该重新计算 UITableView 页脚的大小?

我啥时候应该继承 EnumMeta 而不是 Enum?