UITableView 优化

来源:互联网 发布:关于考研的淘宝店铺 编辑:程序博客网 时间:2024/06/03 06:47

说到UITableView优化,大家第一反应肯定是缓存池机制,在这我就不介绍缓存池机制了,主要说优化的事情


1. 在这想问问tableView的数据源方法都有那些?代理方法都有哪些?

很简单,凡是返回cell、heard或footer 都是数据源方法

高度什么的都是代理方法

2.tableview这些方法的执行顺序?

首先,tableview继承scrollview,那么首先要知道scrollview的contentsize,其次才是cell内容。显然易见,heightforrow 比cellforrow执行顺序高,不信的可以跑一遍试试。

3.假如我现在有100个cell,每个cell的高度不同,那么参考2就是先算出每个cell的高度,然后在去设置每个cell的子视图的位置以及大小,这样就会跑了200次,高度100次,cell内容100次,是不是有点2啊?如何解决呢?

假设一下,我们能不能让heightforrow方法只负责计算高度呢?让cellforrow只负责给cell的model赋值呢?

当然可以,具体做法就是分离heightforrow和cellforrow

4.tableview优化2----异步绘制

dispatch_async({

绘制cell里面的内容

});


总结一下:优化从这3方面入手

1.cell的高度

2.异步绘制

3.按需加载

离屏加载,也是tableview优化的一大特性,在使用tableview的时候尽量避免以下属性设置,

1.圆角 可以使用贝塞尔曲线代替,可以使用透明圆角图片代替,可以使用caShapelayer代替.

2.阴影

3.偏移量

4.抗锯齿,等等

5.透明度



原创粉丝点击