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

问题描述 投票:51回答:1

我见过一些滞后性问题的修复方法,通过设置视图的层属性

view.layer.shouldRasterize = YES;

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

不知道有什么影响。

如果能得到解释就更好了.谢谢!

ios uiview uicollectionview rasterizing
1个回答
62
投票

在WWDC 2012打磨你的界面旋转视频中(很遗憾,网上已经没有了),他们谈到了光栅化图层的优势和影响。

底线是,如果你有一个复杂的视图(即重新渲染的成本相对较高),你正在制作动画,但动画视图本身并没有变化,光栅化层可以通过不一直重新渲染层来提高性能。但它这样做是以内存为代价的(在内存中保存一个栅格化的图像)。

但是,如果你在图层内做了一个变化的动画,就会在图层内的 shouldRasterize 会对性能产生不利影响(因为它要为动画的每一帧重新光栅化图层)。

一般来说,如果要制作一组复杂的图层的动画,而这些图层本身是不会改变的,那么你可以在动画中设置 shouldRasterizeYES做动画,然后关闭 shouldRasterize.

© www.soinside.com 2019 - 2024. All rights reserved.