Iphone 表单元格中imageview的线程化缩略图加载

Iphone 表单元格中imageview的线程化缩略图加载,iphone,uitableview,imageview,nsthread,Iphone,Uitableview,Imageview,Nsthread,我正在寻找关于如何以表格的形式为导航列表创建一个高效的缩略图加载程序的建议。我可以启动一个线程,下载并缓存缩略图,但我不确定如何用图像更新表格单元格(一个可见或在视图之外的单元格) 如果我没记错的话,我想应用程序块就是我想要的 我想设置一个占位符图像,当线程加载每个图像时,它会更新单元格。如果可能,占位符可以是动画活动指示器(微调器) 有没有简练的示例代码,或者您可以给出一些建议,说明如何将更新信息传达给单元格,并强制其立即显示图像?有趣的问题 我猜在某种程度上,您需要通过reloadRowsA

我正在寻找关于如何以表格的形式为导航列表创建一个高效的缩略图加载程序的建议。我可以启动一个线程,下载并缓存缩略图,但我不确定如何用图像更新表格单元格(一个可见或在视图之外的单元格)

如果我没记错的话,我想应用程序块就是我想要的

我想设置一个占位符图像,当线程加载每个图像时,它会更新单元格。如果可能,占位符可以是动画活动指示器(微调器)

有没有简练的示例代码,或者您可以给出一些建议,说明如何将更新信息传达给单元格,并强制其立即显示图像?

有趣的问题

我猜在某种程度上,您需要通过
reloadRowsAtIndexPaths:withRowAnimation:
方法替换表视图中的现有单元格,因此我怀疑您需要保留单元格内容->索引路径的查找,以便在相关资源可用时知道要更新哪些单元格

但是,您需要避免破坏现有的单元重用系统。(也就是说,预先创建所有单元格没有任何价值。)因此,我猜想,大部分工作应该在-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath方法中完成


也就是说,希望你能得到比这些含糊其辞的回答更好的回答。:-)

实现了我在iPhone上见过的最好的线程缩略图加载:D最困难的部分是在导航离开表时取消线程。NSThread加载图像并执行SelectorOnMainThread waitUntilDone:是用于更新cell.imageView时,在数组中传递对象(cell、tableView、indexPath等),以绕过withObject中仅传递一个对象的限制。在加载图像时,每个图像都会快速淡入,看起来很皇家:)

让我想到了一些东西。当加载线程完成时,使用[mytable reloadData]可能就足够了。这将只刷新可见单元格,但当视图滚动到cellForRow时。。。将被调用,并在cell imageview中使用替换的图像。Cheesy标记您自己的答案,因为我基本上必须自己解决如何做,这个答案有一些细节,可能会帮助其他人。