美文网首页
UI渲染的优化

UI渲染的优化

作者: 爱德华炼金术师 | 来源:发表于2017-10-15 20:16 被阅读8次

    [http://www.jianshu.com/p/619cf14640f3]

    Instrument Core Animation

    Color Blended Layers

    图层混合,红色表示有,绿色表示没有

    Color Hits Green and Misses Red

    图层是否命中缓存,红色表示没有,绿色表示有。
    缓存中的对象有效期只有100ms,即如果在0.1s内没有被使用就会自动从缓存中清理出去。
    通过开启图层光栅化启用缓存,label.layer.shouldRasterize = true

    Color Copied Images

    图片是否需要转化。蓝色表示有转化。GPU支持的格式有限,遇到不支持的格式需要进行转化。

    Color Misaligned Images

    黄色表示图片进行了缩放,紫色表示像素没有对齐
    图片最好和UIImageViewsize一致

    Color Offscreen-Rendered Yellow

    图层是否有离屏渲染,黄色表示有。
    以下情况可能会导致触发离屏渲染:

    1、重写drawRect方法,cpu的离屏渲染
    2、有mask或者是阴影(layer.masksToBounds, layer.shadow*),模糊效果也是一种mask
    3、layer.shouldRasterize = true
    
    Color Compositing Fast-Path Blue

    蓝色表示硬件绘制

    Flash updated Regions

    发生重绘的区域

    优化方案

    避免图层混合

    1、确保控件的opaque属性设置为true,确保backgroundColor和父视图颜色一致且不透明如无特殊需要,不要设置低于1的alpha值
    2、确保UIImage没有alpha通道

    避免临时转换

    1、确保图片大小和frame一致,不要在滑动时缩放图片
    2、确保图片颜色格式被GPU支持,避免劳烦CPU转换

    慎用离屏渲染

    1、绝大多数时候离屏渲染会影响性能
    2、重写drawRect方法,设置圆角、阴影、模糊效果,光栅化都会导致离屏渲染
    3、设置阴影效果是加上阴影路径
    4、滑动时若需要圆角效果,开启光栅化

    相关文章

      网友评论

          本文标题:UI渲染的优化

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