Swift 在UITableView重新加载时从SDWebImage设置图像
我在UITableView中有一个单元格列表。图像在单元格内通过以下方法下载Swift 在UITableView重新加载时从SDWebImage设置图像,swift,uitableview,sdwebimage,reloaddata,Swift,Uitableview,Sdwebimage,Reloaddata,我在UITableView中有一个单元格列表。图像在单元格内通过以下方法下载 self.profileImage.sd_setImage(with: URL(string: profileURL), completed: { (image, error, cache, url) in if image != nil { self.profileImage.image = ima
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时,该索引的前一个图像会加载一小会儿,然后该索引的更新图像会出现
现在我的理论是以下情况发生(如果我错了,请纠正我)
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)
此默认\u徽标放入资产.xcsets中
3.TableView重新加载,单元格中的数据更改
如果使用UITableViewCell配置单元格,则可以重写方法prepareForReuse()以清除旧图像,例如:
override func prepareForReuse() {
super.prepareForReuse()
profileImage.image = nil
}
这样就不会出现旧的缓存图像。这将删除下载的图像,并用占位符图像替换它们。但是,当重新加载UITableView时,这将非常有效。你知道我如何让他们在viewDidLoad时显示吗?别担心,完成块中的self.profileImage.image=image现在似乎可以工作了。
override func prepareForReuse() {
super.prepareForReuse()
profileImage.image = nil
}