美文网首页
shouldRasterize

shouldRasterize

作者: Smallwolf_JS | 来源:发表于2022-07-28 15:08 被阅读0次

    1 减少视图层级
    设置一个CALayer的shouldRasterize=YES,相当于提前把一个CALayer光栅化。这个CALayer图层结构就被拍扁了,变成一张位图。
    2 缓存得到图像,提高性能
    启用shouldRasterize属性会将图层绘制到一个屏幕之外的图像,然后这个图像将会被缓存起来。缓存起来是一个重要的特性,它几乎决定了shouldRasterize的所有应用场景。
    如果有很多的子图层或者有复杂的效果应用,开启shouldRasterize就会比重绘所有事务的所有帧划得来得多。但是光栅化原始图像需要时间,而且还会消耗额外的内存。所以需要根据实际情况取舍。
    3、shouldRasterize的应用场景
    通过上面shouldRasterize的理解,就不难得出shouldRasterize应该如何应用。
    4 启用shouldRasterize提升复杂层级视图的性能
    由于启用shouldRasterize得到的图像会被缓存起来。这大大减少了GPU的负担。试想在一个table view的cell中,有非常复杂的层级结构。滑动tableview的时候,GPU需要进行大量的合成,这有可能会导致性能问题。我们可以尝试将cell的layer的shouldRasterize打开提升性能。
    5 启用shouldRasterize提升动画性能
    对一个层级复杂的视图做动画时,也可以启用shouldRasterize避免GPU每帧都重新合成。
    6 启用shouldRasterize改善离屏渲染的性能。
    仍然是在一个table view的cell中,如果使用了阴影效果,那么会触发离屏渲染:

    相关文章

      网友评论

          本文标题:shouldRasterize

          本文链接:https://www.haomeiwen.com/subject/mdrxwrtx.html