问题描述
|
我遇到一个常见的TableView数据重新加载问题。我已经读过许多关于同一主题的问题,但是问题从来没有和我完全一样。
我有一个基于导航的应用程序。在RootViewController的viewDidLoad方法中,我发出了一个请求,以获取JSON数据(文章)。连接完成加载后,我为每个条目创建自定义Article对象。 Article类具有initWithDictionnary方法,该方法初始化对象的属性,最重要的是创建一个下载图像的请求。连接完成加载后,我将设置Article对象的image属性。
目标是使用下载的图像初始化cell.imageView.image属性。到那时,您可能已经猜到了问题所在。
在渲染单元格图像之后下载图像,因此它保持空白直到重新加载该单元格(例如,如果它退出屏幕然后又返回)。
我想我应该在某个时间调用reloadData,但我不知道何时。理想情况下,当所有单元都加载时,我会称呼它,但似乎不可能。
我已经尝试了一些疯狂的事情,例如等待单元加载,然后尝试重新加载前一个,但是它没有用。
通过在这里阅读问答,我了解了Apple的LazyTableImage示例代码,但是我不了解所有示例代码,因此不确定是否应该/可以使用它。
请问我是否需要更多详细信息。
在此先感谢您的帮助。
解决方法
您必须异步加载图像。请记住,表数据应该每行包含一个字段,用于指定是否加载了图像,以便(如果为true)可以跳过加载并仅显示缓存的图像。
首先看这个问题:异步加载图像
,大约有10个不错的延迟加载图像UITableView教程。选一个。
一段时间后,您将通过回顾这些教程来掌握它。坚持下去,这是一个重要的概念,不仅对于这个项目,对于您的编程生涯的其余部分也是如此。
延迟加载图像UITableView教程将使您变得更聪明!