gpt4 book ai didi

iphone - UITableViewCell 中的延迟加载图像

转载 作者:行者123 更新时间:2023-12-03 18:15:02 24 4
gpt4 key购买 nike

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

我想要延迟加载图像,以便在加载图像时 UI 不会卡住。我尝试在单独的线程中获取图像,但每次单元格再次可见时我都必须加载每个图像(否则重复使用单元格会显示旧图像)

Facebook 等应用程序仅加载当前可见的单元格的图像,并且一旦加载图像,就不会再次加载。有人可以告诉我如何复制这种行为吗?

谢谢。

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

欢迎提出其他建议

最佳答案

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

加载单元格时,您需要向 NSMutableDictionary 发送一条 objectForKey: 消息,以检索该特定单元格的图像(基于您的唯一键)。如果它返回 nil,则意味着缓存中缺少该图像,您需要后台图像加载线程来检索它。否则,您将返回适合表格单元格显示的图像。出现内存警告时,您可以清除此图像缓存,而不会产生任何不利影响(除了强制根据需要重新加载它们之外)。

关于iphone - UITableViewCell 中的延迟加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com