美文网首页
减少图层数量

减少图层数量

作者: Crazy2015 | 来源:发表于2017-05-19 08:52 被阅读14次

    初始化图层,处理图层,打包通过IPC发给渲染引擎,转化成OpenGL几何图形,这些是一个图层的大致资源开销。事实上,一次性能够在屏幕上显示的最大图层数量也是有限的。

    确切的限制数量取决于iOS设备,图层类型,图层内容和属性等。但是总得说来可以容纳上百或上千个,下面我们将演示即使图层本身并没有做什么也会遇到的性能问题。
    

    裁切

    在对图层做任何优化之前,你需要确定你不是在创建一些不可见的图层,图层在以下几种情况下是不可见的:

    • 图层在屏幕边界之外,或是在父图层边界之外。
    • 完全在一个不透明图层之后。
    • 完全透明

    Core Animation非常擅长处理对视觉效果无意义的图层。但是经常性地,你自己的代码会比Core Animation更早地想知道一个图层是否是有用的。理想状况下,在图层对象在创建之前就想知道,以避免创建和配置不必要图层的额外工作。

    Core Graphics绘制

    当排除掉对屏幕显示没有任何贡献的图层或者视图之后,长远看来,你可能仍然需要减少图层的数量。例如,如果你正在使用多个UILabel或者UIImageView实例去显示固定内容,你可以把他们全部替换成一个单独的视图,然后用-drawRect:方法绘制出那些复杂的视图层级。

    相关文章

      网友评论

          本文标题:减少图层数量

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