什么时候应该设置layer.shouldRasterize为YES
我已经通过设置视图的图层属性看到了一些lagyness问题的修复
view.layer.shouldRasterize = YES;
在使用UICollectionView并准备单元格和设置propery时,我看到了性能上的巨大差异。
不知道是什么影响。
这将是很好的解释。 谢谢!
在WWDC 2012 抛光您的界面旋转video(付费开发者订阅需要)中,他们讨论了栅格化图层的优点和含义。 这个video是在一个不同的主题(虽然有趣的一个),但他们确实谈到了光栅化与快照的优点和缺点(从video开始大约8分钟,他们给出了关于UIView
层次结构,演示文稿树和渲染树,然后深入讨论另外6分钟的光栅化过程)。
底线,如果你有一个复杂的视图(即重新渲染相对昂贵),你正在animation,但animation视图本身并没有改变,栅格化图层可以提高性能,通过不重新渲染图层。 但是这是以内存为代价的(在内存中保存一个光栅化图像)。
但是,如果对图层中的更改设置animation效果,则shouldRasterize
会对性能产生负面影响(因为它将重新栅格化animation的每个帧的图层)。
一般来说,如果animation一组复杂的图层本身没有改变,那么你可以设置shouldRasterize
为YES
,做animation,然后closuresshouldRasterize
。