1

我遇到了一个常见的 TableView 数据重新加载问题。我已经阅读了许多关于同一主题的问题,但问题与我的问题并不完全相同......

我有一个基于导航的应用程序。在 RootViewController 的 viewDidLoad 方法中,我发出请求以获取 JSON 数据(文章)。连接完成加载后,我为每个条目创建自定义文章对象。Article 类有一个 initWithDictionnary 方法,它初始化对象的属性,最重要的是创建一个下载图像的请求。当连接完成加载后,我设置了 Article 对象的图像属性。目标是使用下载的图像初始化 cell.imageView.image 属性。到那时,您可能已经猜到问题所在了。图像在单元格图像被渲染后下载,因此它保持为空,直到重新加载单元格(例如,如果它离开屏幕然后又重新加载)。我想我应该在某个时间调用 reloadData 但我没有 不知道什么时候。理想情况下,我会在所有单元格都已加载但似乎不可能时调用它。我尝试了一堆疯狂的事情,比如等待一个单元格加载并尝试重新加载前一个单元格,但它没有用。通过阅读此处的问答,我了解了 Apple 的 LazyTableImage 示例代码,但我并不了解所有内容,因此我不确定我应该/可以使用它。

如果您需要更多详细信息,请询问我。

提前感谢您的帮助。

4

2 回答 2

1

您必须异步加载图像。请记住,您的表数据应包含每行的字段,指定图像是否已加载,以便(如果为真)您可以跳过加载并仅显示缓存的图像。

先看这个问题:Load images async

于 2011-04-13T12:30:15.143 回答
0

大约有 10 个很好的延迟加载图像 UITableView 教程。选一个。

一段时间后,您将通过查看教程来掌握它。坚持下去,这是一个重要的概念,不仅适用于这个项目,而且适用于你的其余编程生涯。

懒加载图片 UITableView 教程,让你更聪明!

于 2011-04-13T12:47:47.467 回答