美文网首页
UITableView优化之缓存cell高度

UITableView优化之缓存cell高度

作者: CALayer_Sai | 来源:发表于2017-07-12 09:09 被阅读0次

为什么要缓存高度?

因为当tableView滚动时会不停的回调- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;这个代理方法,当cell的高度需自适应内容时,就意味着每次回调这个方法时都要计算高度,而计算是要花时间了,在用户体验上的体现就是卡顿。为了避免重复且无意义的计算cell高度,缓存高度就显得尤为重要了。

怎样缓存?

缓存高度需要一个可变数组,每当回调- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;这个方法时,我们先去这个数组里去取,如果有,就直接拿出来,如果没有,就计算高度,并且放进数组。

代码讲解

这是我们用来装缓存高度的可变数组

/** 缓存cell高度的数组 */

@property(nonatomic,strong)NSMutableArray*heightArray;

- (NSMutableArray*)heightArray{

if(_heightArray ==nil) {      

_heightArray = [NSMutableArrayarray];  

}

return_heightArray;

}

刷新tableView时记得清空高度缓存数组。

总结

总的来说缓存cell高度还是比较简单的,只需在原来的基础上多加一个可变数组即可,逻辑也不复杂。不过,其对性能的优化还是不容小觑的,尤其是cell内容复杂且需高度自适应内容时。强烈建议人人get这项技术,即使是入门级开发者。

链接:http://www.jianshu.com/p/25e2f99a08cc

相关文章

网友评论

      本文标题:UITableView优化之缓存cell高度

      本文链接:https://www.haomeiwen.com/subject/itlmhxtx.html