我通过设置视图的图层属性
看到了一些lagyness问题的修复view.layer.shouldRasterize = YES;
在使用UICollectionView并准备单元格和设置属性时,我发现性能差异很大。
不确定含义是什么。
很高兴得到解释。 谢谢!
答案 0 :(得分:51)
在WWDC 2012 Polishing Your Interface Rotations视频(需要付费开发者订阅)中,他们讨论了栅格化图层的优势和含义。这个视频是关于一个不同的主题(虽然是一个有趣的主题),但他们确实讨论了光栅化与快照的利弊(从视频开始约8分钟,他们给出了关于UIView
之间关系的一些背景知识。层次结构,表示树和渲染树,然后在视频中另外6分钟深入讨论光栅化。
如果你有一个复杂的视图(即重新渲染相对昂贵)你是动画的底线,但是动画视图本身不会改变,底层光栅化可以通过不重新渲染图层来提高性能每时每刻。但它以内存为代价(在内存中保存光栅化图像)。
但是,如果您对图层中的更改进行动画处理,则shouldRasterize
会对性能产生负面影响(因为它会为动画的每个帧重新栅格化图层)。
通常情况下,如果设置一组复杂的图层(它们本身没有变化),则可以将shouldRasterize
设置为YES
,然后执行动画,然后关闭shouldRasterize
。