我啥时候应该将 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)“数据属性”?