当前位置:  开发笔记 > 编程语言 > 正文

UITableView的reloadData有多贵?

如何解决《UITableView的reloadData有多贵?》经验,为你挑选了2个好方法。

我很好奇,就资源而言,UITableView的reloadData有多贵?我有一个应用程序,它将产生大约10个后续的HTTP请求,并且当它获取数据/ preps时,它会重新加载tableView.随着数据集越来越大,它变得非常缓慢.我正在试图弄清楚是不是因为我正在重新加载tableView的次数,或者是因为我正在抓取/解析数据.

在这种情况下,最佳做法是什么?



1> Alex Gosseli..:

从UITableView.h:

 - (void)reloadData;                 // reloads everything from scratch. redisplays visible rows. because we only keep info about visible rows, this is cheap. will adjust offset if table shrinks

"这很便宜."

很好地实现你的表视图方法,并且一直调用这个函数都没什么大不了的.

另外,如果您考虑使用reloadData,则应尝试使用适当的方法为添加和删除行设置动画.



2> Alex..:

最佳实践是cellForRowAtIndexPath:尽可能少地执行您的实现.实际上,除了UITableViewCell使用需要显示的数据填充实例之外,它实际上不应该做任何工作.

您应该使用缓存的UITableViewCells,这样您就不必每次都分配新的单元格.如果你可以在一个单独的线程中进行解析,并使解析后的数据准备就绪,可以访问cellForRowAtIndexPath:,那么就不应该有任何性能问题.

您没有说明您是否使用自定义UITableViewCell子类,但如果您使用自定义子类,则深层视图层次结构也会出现性能问题,因为层次结构中的每个视图都会被绘制.你可以UITableViewCell做得更好,越好.

希望能让你朝着正确的方向前进.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有