UITableViewCell的异步图像下载不会触发connectionDidFinishLoading:直到滚动停止

时间:2011-02-15 18:09:09

标签: iphone asynchronous sdk uitableview nsurlconnection

我有一个典型的UITableView,它显示缩略图和一些文字。在tableView:cellForRowAtIndexPath期间:我为列表中的每个项启动异步图像下载。图像正在下载,但不是我想要的方式。例如,如果我轻弹滚动列表,我的下载请求会立即发生,但是,不会触发connectionDidFinishLoading:消息,直到从轻弹滚动滚动到完全停止。基本上,这会导致用户在几秒钟内看到一堆空图像。

例如,如果您查看应用程序商店应用程序,当您轻拂其中一个列表时,即使滚动尚未停止,图像也会开始显示。我假设这是由于某种多线程解决方案。

有人可以向我提供一个如何实现预期结果的例子吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

你可能需要这样做:

[_connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];

假设_connection是你的NSURLConnection。

答案 1 :(得分:1)

我最终解决了这个问题,因为这个星球上没有人可以帮助我。如果您真的想知道如何实现这一点,我已经描述了如何修改Apple的LazyTableImages示例项目以实现所需的效果:

Question about Apple's LazyTableImages sample - Doesn't behave exactly like the app store

答案 2 :(得分:0)

看看这里的答案。 lazy loading images in UITableView iPhone SDK 我在一些应用程序中使用它并且效果很好