2

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

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

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

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

编辑:

为了澄清,我已经延迟加载图像和数据。

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

4

2 回答 2

3

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

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

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

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

于 2013-09-03T12:51:13.447 回答
1

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

于 2013-09-03T12:37:00.767 回答