iPhone:UITableView reloadData计时问题

问题描述

| 我遇到一个常见的TableView数据重新加载问题。我已经读过许多关于同一主题的问题,但是问题从来没有和我完全一样。 我有一个基于导航的应用程序。在RootViewController的viewDidLoad方法中,我发出了一个请求,以获取JSON数据(文章)。连接完成加载后,我为每个条目创建自定义Article对象。 Article类具有initWithDictionnary方法,该方法初始化对象的属性,最重要的是创建一个下载图像的请求。连接完成加载后,我将设置Article对象的image属性。 目标是使用下载的图像初始化cell.imageView.image属性。到那时,您可能已经猜到了问题所在。 在渲染单元格图像之后下载图像,因此它保持空白直到重新加载该单元格(例如,如果它退出屏幕然后又返回)。 我想我应该在某个时间调用reloadData,但我不知道何时。理想情况下,当所有单元都加载时,我会称呼它,但似乎不可能。 我已经尝试了一些疯狂的事情,例如等待单元加载,然后尝试重新加载前一个,但是它没有用。 通过在这里阅读问答,我了解了Apple的LazyTableImage示例代码,但是我不了解所有示例代码,因此不确定是否应该/可以使用它。 请问我是否需要更多详细信息。 在此先感谢您的帮助。     

解决方法

您必须异步加载图像。请记住,表数据应该每行包含一个字段,用于指定是否加载了图像,以便(如果为true)可以跳过加载并仅显示缓存的图像。 首先看这个问题:异步加载图像     ,大约有10个不错的延迟加载图像UITableView教程。选一个。 一段时间后,您将通过回顾这些教程来掌握它。坚持下去,这是一个重要的概念,不仅对于这个项目,对于您的编程生涯的其余部分也是如此。 延迟加载图像UITableView教程将使您变得更聪明!