2011-01-05 32 views
2

我想创建一个UITableView更多的行自动加载,当我滚动到列表的底部。这通常就像亚马逊iPhone上的应用程序的搜索功能。它一次加载大约20行,当我滚动到前20个的末尾时,接下来的20个会自动加载。一旦加载,它仍然在内存中。我没有考虑最后一行在App store应用中显示“加载更多项目”的选项。滚动以加载更多单元格像UITableView亚马逊应用

这是我想要实现的:我当前的应用程序线程需要大约8-15秒来加载UITableView(列表中的任何地方从0-50项)。即使只有1行,也需要大约8秒。我想让这个过程看起来更快。我的屏幕可以在任何给定的时间显示7行的最大,所以我想如果我能在同一时间做这个负载8-10行,并能够在实现这一点,让我们说,3-4秒,那么其他项目可以随着用户一直向下滚动而加载。因此,第一次加载表格的速度似乎是现在的两倍。

我一直在寻找“拉刷新”之类的Tweetie2应用程序,我也希望在GitHub上Three20代码,但我也不太清楚如何让这个实现像亚马逊的应用程序。

主要关注如何使其加载速度更快,而无需额外的用户输入。

任何帮助将不胜感激。

回答

18

你有没有考虑使用的UITableViewDelegate方法:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 

如果保留最后一个单元格的索引的知识,你已经加载,并且如果你靠近滚动到该小区,开始异步请求装入更多的行。

+0

谢谢Shiun,会探讨这个并回复。 – Anand 2011-01-06 00:00:26

+1

Anand,您应该将此答案标记为“已接受”。 – Stavash 2012-04-04 08:12:46

+0

@Shiun一旦你完成加载更多行的异步请求,你会做什么?我想防止重新加载TableView导致的闪烁问题。 – Alan 2016-02-19 20:55:26