繁体   English   中英

快速重新加载UITableView数据(iOS)

[英]Quick reload of UITableView data (iOS)

我正在使用UITableView显示自定义内容(通过将UITableViewCell子类化),并且我有两种类型的内容。

通常显示的类型1由6-7行和1个部分组成,这很快就加载完全没有问题。 默认情况下显示此数据集。

现在视图上有一个按钮,单击该按钮将打开一个标志并称为[tableview reloadData],然后提供数据的方法将切换并开始返回第二组数据视图。...大约有20,000多个现在,这些行...可能有1,000,000,000(但不久之后不会发生...)。

对于第二种类型,我要做的就是存储一个整数(它们不是连续的-有间隔,所以我必须这样做),然后在调用cellForRowAtIndexPath的时候,我返回一个单元格并创建一个将加载的线程异步将数据导入该单元。 效果很好...但是问题是,即使表加载的组件不超过三个(它们的高度很大),单击该按钮仍需要很长时间才能切换内容。

是什么原因导致这么长的数据重新加载时间?...

谢谢。

我将假设您正确地异步加载了数据,并且您没有尝试将20,000+个对象重新加载到内存中,您可能需要仔细检查。 否则,如果要实现tableView:heightForRowAtIndexPath:来设置行的高度,则可能是您遇到的问题。 需要为每一行调用此委托方法,以便它可以设置滚动视图内容的大小。 而是使用UITableViewrowHeight属性。

使用tableView:heightForRowAtIndexPath:而不是rowHeight属性会对性能产生影响。 每次显示表视图时,它都会在委托上为其表的每一行调用tableView:heightForRowAtIndexPath:,这可能导致表视图具有大量行(大约1000或更多)而导致严重的性能问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM