什么时候应该设置layer.shouldRasterize为YES

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

view.layer.shouldRasterize = YES; 

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

不知道是什么影响。

这将是很好的解释。 谢谢!

在WWDC 2012 抛光您的界面旋转video(付费开发者订阅需要)中,他们讨论了栅格化图层的优点和含义。 这个video是在一个不同的主题(虽然有趣的一个),但他们确实谈到了光栅化与快照的优点和缺点(从video开始大约8分钟,他们给出了关于UIView层次结构,演示文稿树和渲染树,然后深入讨论另外6分钟的光栅化过程)。

底线,如果你有一个复杂的视图(即重新渲染相对昂贵),你正在animation,但animation视图本身并没有改变,栅格化图层可以提高性能,通过不重新渲染图层。 但是这是以内存为代价的(在内存中保存一个光栅化图像)。

但是,如果对图层中的更改设置animation效果,则shouldRasterize会对性能产生负面影响(因为它将重新栅格化animation的每个帧的图层)。

一般来说,如果animation一组复杂的图层本身没有改变,那么你可以设置shouldRasterizeYES ,做animation,然后closuresshouldRasterize