UITableView 优化

说到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.透明度



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值