我正在尝试创建一个UITableView,当我滚动到列表底部时会自动加载更多行。这通常类似于iPhone的亚马逊应用程序上的搜索功能。它一次加载大约20行,当我滚动到前20行的末尾时,接下来的20行会自动加载。加载后,它将保留在内存中。我没有考虑一个选项,其中最后一行显示“加载更多项目”,如App Store应用程序。
以下是我要实现的目标:我当前的应用程序线程需要大约8-15秒才能加载UITableView(列表中的0-50项)。即使只有1行,也需要大约8秒钟。我想让这个过程看起来更快。我的屏幕在任何给定的时间都可以显示最多7行,所以我想我是否可以一次加载8-10行并且能够实现这一点,比如3-4秒,然后另一行当用户一直向下滚动时,项目可以加载。因此,第一次加载表格的速度似乎是现在的两倍。
我一直在关注Tweetie2应用程序中的“Pull to Refresh”,我也在github上查看Three20代码,但我不太清楚如何像亚马逊应用程序那样实现它。
主要关注如何加快加载速度,无需额外的用户输入。
非常感谢任何帮助。
答案 0 :(得分:18)
您是否考虑过使用UITableViewDelegate方法:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
如果您了解已加载的最后一个单元格的索引,并且接近滚动到该单元格,则启动异步请求以加载更多行。