如何从按钮的 imageView 中删除缓存的 SDWebImage
How to delete cached SDWebImage from a button's imageView
所以我有一个 UIButton,其 imageView 设置为使用下载的图像 URL。为此,我使用 SDWebImage。
问题是,当我按下删除按钮时,我希望图像完全消失,但我猜它不起作用,因为图像仍在从缓存中检索。我该如何解决?
class ViewController: UIViewController{
var profileButton: UIButton = {
let button = UIButton(type: .system)
return button
}()
var user: User?
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(profileButton)
profileButton.addTarget(self, action: #selector(handleDelete), for: .touchUpInside)
self.loadUserPhotos()
}
fileprivate func loadUserPhotos(){
let profileImageUrl = self.user?.profileImageUrl1
if let imageUrl = profileImageUrl, let url = URL(string: imageUrl){
SDWebImageManager.shared().loadImage(with: url, options: .continueInBackground, progress: nil) { (image, _, _, _, _, _) in
self.profileButton.setImage(image?.withRenderingMode(.alwaysOriginal), for: .normal)
}
}
}
@objc func handleDelete(){
self.user?.profileImageUrl1 = ""
self.profileButton.imageView?.image = nil
self.loadUserPhotos()
}
}
要从 UIButton 中删除图像,您还需要提及状态。
self.profileButton.setImage(nil, for: .normal)
您可以使用:
SDImageCache.shared.removeImage(forKey: url?.description, withCompletion: nil)
所以我有一个 UIButton,其 imageView 设置为使用下载的图像 URL。为此,我使用 SDWebImage。
问题是,当我按下删除按钮时,我希望图像完全消失,但我猜它不起作用,因为图像仍在从缓存中检索。我该如何解决?
class ViewController: UIViewController{
var profileButton: UIButton = {
let button = UIButton(type: .system)
return button
}()
var user: User?
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(profileButton)
profileButton.addTarget(self, action: #selector(handleDelete), for: .touchUpInside)
self.loadUserPhotos()
}
fileprivate func loadUserPhotos(){
let profileImageUrl = self.user?.profileImageUrl1
if let imageUrl = profileImageUrl, let url = URL(string: imageUrl){
SDWebImageManager.shared().loadImage(with: url, options: .continueInBackground, progress: nil) { (image, _, _, _, _, _) in
self.profileButton.setImage(image?.withRenderingMode(.alwaysOriginal), for: .normal)
}
}
}
@objc func handleDelete(){
self.user?.profileImageUrl1 = ""
self.profileButton.imageView?.image = nil
self.loadUserPhotos()
}
}
要从 UIButton 中删除图像,您还需要提及状态。
self.profileButton.setImage(nil, for: .normal)
您可以使用:
SDImageCache.shared.removeImage(forKey: url?.description, withCompletion: nil)