为了账号安全,请及时绑定邮箱和手机立即绑定

在UITableViewCell中延迟加载图像

在UITableViewCell中延迟加载图像

九州编程 2019-12-18 16:55:20
我的UITableView中有大约50个自定义单元格。我想在从URL获取图像的单元格中显示图像和标签。我想延迟加载图像,以便在加载图像时UI不会冻结。我尝试在单独的线程中获取图像,但是每次单元格再次可见时,我都必须加载每个图像(否则单元格的重用会显示旧图像)诸如Facebook之类的应用程序仅针对当前可见的单元格加载图像,并且一旦加载图像,便不会再次加载它们。有人可以告诉我如何重复这种行为。谢谢。编辑当用户快速滚动时,尝试在NSMutableDictionary对象中缓存图像会产生问题。我仅在完全停止滚动并清除内存缓存警告时才获取图像。但是该应用程序始终会收到内存警告(由于要缓存的图像大小),并在重新加载之前清除缓存。如果滚动非常快,则会崩溃。欢迎其他任何建议
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

将图像加载到后台线程上仍然是一个好主意。如果您不想每次都重新加载它们,建议您设置一个NSMutableDictionary并将图像存储在其中。您可以使用一些唯一的标识符(例如行ID甚至是图像的名称)作为每个图像的键。

加载单元格时,您将向NSMutableDictionary发送objectForKey:消息以检索该特定单元格的图像(基于其唯一键)。如果返回nil,则表示缓存中缺少该图像,您需要背景图像加载线程才能对其进行检索。否则,您将获取适当的图像以供表格单元格显示。出现内存警告时,您可以清除此图像缓存,而不会产生不利影响(除了强制按需重新加载图像外)。


查看完整回答
反对 回复 2019-12-18
  • 3 回答
  • 0 关注
  • 595 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信