Fork me on GitHub

TableVie优化方法和优化机制

1,UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)

(1)缓存高度:当我们创建frame模型的时候,计算出来cell的高度的时候,我们可以将cell的高度缓存到字典里面,以cell的indexpath和Identifier作为为key。

异步绘制

在Cell上添加系统控件的时候,实质上系统都需要调用底层的接口进行绘制,当我们大量添加控件时,对资源的开销也会很大,所以我们可以索性直接绘制,提高效率。

(2)减少层级

减少SubViews的数量, 在滑动的列表上,多层次的view会导致帧数的下降。
例如: 绘制cell 不建议使用UIView,建议使用CALayer。

 

(3)Hide(显示隐藏)

尽量少用addView给Cell动态添加View,可以初始化时就添加,然后通过hide来控制是否显示

(4)避免离屏渲染

为了保证TableView的流畅,当快速滑动的时候,cell必须被快速的渲染出来。所以cell渲染的速度必须快。如何提高cell的渲染速度呢?

  • 当有图像时,预渲染图像,在bitmap context先将其画一遍,导出成UIImage对象,然后再绘制到屏幕,这会大大提高渲染速度。具体内容可以自行查找“利用预渲染加速显示iOS图像”相关资料。
  • 渲染最好时的操作之一就是混合(blending)了,所以我们不要使用透明背景,将cell的opaque值设为Yes,背景色不要使用clearColor,尽量不要使用阴影渐变等
  • 由于混合操作是使用GPU来执行,我们可以用CPU来渲染,这样混合操作就不再执行。可以在UIView的drawRect方法中自定义绘制。

(5)还有其他的优化方法:

    • 正确地使用UITableViewCell的重用机制
    • 避免阻塞主线程
    • 按需加载
    • 尽可能重用开销比较大的对象
    • 尽量减少计算的复杂度
posted @ 2018-11-26 11:11  平凡的不平凡  阅读(317)  评论(0编辑  收藏  举报
AmazingCounters.com