我有一个 UITableView 中的单元格列表。图片正在单元格内通过以下方法下载
self.profileImage.sd_setImage(with: URL(string: profileURL), completed: { (image, error, cache, url) in
if image != nil {
self.profileImage.image = image
} else {
print("didn't load image")
}
})
但是,在重新加载和使用 UITableView 时,该索引的先前图像会加载一小会儿,然后显示该索引的更新图像。
现在我的理论是发生了以下情况(如果我错了请纠正我)...
- 一旦检索到 URL,就会下载图像。
- 该图像使用 SDWebImage 进行缓存。
- TableView 重新加载,单元格中的数据发生变化。
- SDWebImage 使用该 indexPath 的缓存图像而不是单元格。 (这里有问题)
- SDWebImage 再次下载该单元格的 URL 并刷新图像。
如果这是正确的,我需要执行以下操作...
- 检索到 URL 后立即下载图像。
- 使用 SDWebImage 缓存图像。
- TableView 重新加载,单元格中的数据发生变化。
- 为该单元格使用缓存的图像。
我是否使用了错误的方法来设置 self.profileImage?
一如既往,我们非常感谢您的帮助。
最佳答案
1. 检索到 URL 后立即下载图像。 2.使用 SDWebImage 缓存图片。
您使用此代码
let url = NSURL(string: "https://test.com/upload/image.jpg")!
self.imageD.sd_setImage(with: url as URL!, placeholderImage: UIImage(named: "default_logo"), options: .transformAnimatedImage, progress: nil, completed: nil)
这个default_logo放在Assets.xcassets
3.TableView 重新加载,单元格中的数据发生变化。
self.tableView.reloadData()
关于swift - 在 UITableView 重新加载时从 SDWebImage 设置图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46088693/