iphone – 懒惰加载图像在UITableViewCell

我有大约50个自定义单元格在我的UITableView。我想在单元格中显示图像和标签,我从URL获取图像。

我想做一个延迟加载的图像,所以在加载图像时UI不会冻结。我试图获得图像在单独的线程,但我必须加载每个图像每次一个单元格再次可见(否则重用单元格显示旧的图像)

像Facebook这样的应用程序只会为当前可见的单元格加载图片,一旦图片加载完毕,就不会再次加载图片。有人可以告诉我如何复制此行为。

谢谢。

编辑
尝试在NSMutableDictionary对象中缓存图像会在用户快速滚动时产生问题。我得到图像只有当滚动完全停止和清除缓存内存警告。但应用程序总是得到一个内存警告(由于图像缓存的大小),并清除缓存重新加载。如果滚动速度非常快,就会崩溃。

欢迎任何其他建议

在背景线程上加载图像仍然是个好主意。如果你不想每次重新加载它们,我建议设置一个NSMutableDictionary并将图像存储在那里。您可以使用一些唯一标识符,如行ID或图像的名称,作为每个图像的键。

当加载一个单元格,你会发送一个objectForKey:消息到NSMutableDictionary检索该特定单元格的图像(基于它的唯一键)。如果它返回nil,这意味着图像从缓存丢失,你需要你的背景图像加载线程去检索它。否则,您将获得要显示的表单元格的适当图像。在内存警告,您可以清除这个缓存的图像没有负面影响(除了强制他们重新加载按需)。

http://stackoverflow.com/questions/531482/lazy-load-images-in-uitableviewcell

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:iphone – 懒惰加载图像在UITableViewCell