zoukankan      html  css  js  c++  java
  • UITableView 显示优化

    今天被问到在UITableView的滑动过程中,怎么对其进行优化,使其不卡顿。

    回答的时候有点仓促,感觉很多了解的东西没有说出来,总结下吧。

    首先是,高度显示优化。

    先用estimatedRowHeight这个属性,配合AutoLayout,设置rowHight = UITableViewAutomaticDimension,cell就变成自适应的高度。

    同时,还可以 利用RunLoop空闲时间执行预缓存任务

    上面的文章介绍了一种找到优化的合适方案:用RunLoopObserver 找到 kCFRunLoopDefaultMode 的空闲时间片来计算。

    可优化地方:

    • 确保控件的opaque属性设置为true,确保backgroundColor和父视图颜色一致且不透明。

    • 如无特殊需要,不要设置低于1的alpha值。

    • 确保UIImage没有alpha通道。

    避免临时转换

    • 确保图片大小和frame一致,不要在滑动时缩放图片。

    • 确保图片颜色格式被GPU支持,避免劳烦CPU转换。

    慎用离屏渲染

      • 绝大多数时候离屏渲染会影响性能。

      • 重写drawRect方法,设置圆角、阴影、模糊效果,光栅化都会导致离屏渲染。

      • 设置阴影效果是加上阴影路径。

      • 滑动时若需要圆角效果,开启光栅化。

    参考

    ① http://www.cocoachina.com/ios/20160208/15238.html

  • 相关阅读:
    2-7
    2-6
    2-5
    2-4
    2-3
    2-1
    2-2
    1-1
    5-7
    第六章例6-1
  • 原文地址:https://www.cnblogs.com/loying/p/5160579.html
Copyright © 2011-2022 走看看