我见过一些滞后性问题的修复方法,通过设置视图的层属性
view.layer.shouldRasterize = YES;
我在使用UICollectionView和准备单元格并设置适当的时候,看到了性能上的巨大差异。
不知道有什么影响。
如果能得到解释就更好了.谢谢!
在WWDC 2012打磨你的界面旋转视频中(很遗憾,网上已经没有了),他们谈到了光栅化图层的优势和影响。
底线是,如果你有一个复杂的视图(即重新渲染的成本相对较高),你正在制作动画,但动画视图本身并没有变化,光栅化层可以通过不一直重新渲染层来提高性能。但它这样做是以内存为代价的(在内存中保存一个栅格化的图像)。
但是,如果你在图层内做了一个变化的动画,就会在图层内的 shouldRasterize
会对性能产生不利影响(因为它要为动画的每一帧重新光栅化图层)。
一般来说,如果要制作一组复杂的图层的动画,而这些图层本身是不会改变的,那么你可以在动画中设置 shouldRasterize
到 YES
做动画,然后关闭 shouldRasterize
.