如何让我的UITableView请求可见表外的X个下一个单元格?

时间:2013-09-03 12:26:06

标签: ios objective-c uitableview

我想让我的UITableView在表格之外加载3或4个单元格,以便在我向下滚动时已经加载了那里显示的任何数据。

我有一些图像,以及必须先下载的数据才能在单元格中显示。 这会在滚动时加载图像之前导致可见的延迟。

我可以通过UITableViewDataSource tableView:cellForRowAtIndexPath:方法手动触发加载此数据。我以前做过这个,但我很好奇是否有更容易的方法。

有没有办法扩展可重复使用的细胞池,或调整细胞的加载/回收方式?

编辑:

为了澄清,我暂时加载图像和数据。

一切正常,我只想简单解决“预取”问题。  哪个可以通过与视图本身无关的多种方式解决。现在,您可以在滚动时轻松看到图像加载。我只是希望它们在可见之前加载。

2 个答案:

答案 0 :(得分:3)

您可能正在寻找异步加载数据的异步表视图。

Apple提供了一个示例应用程序来演示: LazyTableImages

当然,您可以预先缓存数据,然后在滚动之前开始将数据下载到数据源中。

一般的想法是您将数据加载到数据源(与UI分开),因此您可以随时(以及在后台)执行此操作。如果尚未加载数据,您可以显示临时数据或某种类型的加载图像或微调器。

答案 1 :(得分:1)

如果在cel变为可见时将加载单元格的数据,您可以通过滚动到底部单元格以编程方式滚动表格视图,然后返回到没有动画的第一个单元格。另一种方法是创建所有单元格并在创建视图控制器时将它们放入数组中,并从包含已创建单元格的数组中提供表格。我认为没有办法像你要求的那样扩展细胞池。希望这有帮助,祝你好运!