UITableView 性能优化

首先,UITableViewCell的创建是很消耗性能的,所以cell一定要重用,以及上面的各种控件尽可能的重用。

如果用不到就隐藏,别删除留着用。



其次,我们在iOS开发中UITableView的使用频率很高,UITableView使用中tableView:heightForRowAtIndexPath的使用率很高。很多时候感觉卡顿其实就是因为这个函数的执行占用太多的资源(假设你的重用是做好了的)。因为一进入就会计算所有cell的高度,而且以后每次滑到相应的cell的时候还要再次计算cell的高度。所以我们经常在这个函数上会做很多的优化工作。

iOS7提供了一个新的代理函数tableView:estimatedHeightForRowAtIndexPath他会在第一次进入的时候调用,我们可以在这个函数中给每个cell预估一个高度,然后当滑动到相应的cell的时候才会去调用tableView:heightForRowAtIndexPath这样就可以避免第一次就计算所有的cell的高度的问题,尽可能快的加载。

但是这样做会带来一些问题,就是用户没有滑动到全部的cell的话,那么整个tableview的展示高度就是不准确的,因为里面含有你预估的cell高度。所以这个时候,如果使用函数滑动到指定的坐标的时候就会出问题。所以尽量避免这个问题。


可是 实现开发中我们是需要兼容iOS6的,所以光是这个方法不行的。
我们给每个cell的数据model(mvc中的m)添加一个height的属性,每次tableView:heightForRowAtIndexPath执行的时候,首先去cell对应的model中拿height值,如果没有就计算然后存进去。这样就可以保证每个cell的高度只会算一遍,以后都只是取值而已。如果你的cell存在展开收缩这种高度会变的情况,在执行完展开的逻辑后先把height属性置空,再去刷新这个cell,就可以保证cell高度的正确性。



优化的思路就是缓存、重用


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值