Как удалить кэшированный SDWebImage из imageView кнопки - PullRequest
0 голосов
/ 26 февраля 2020

Итак, у меня есть 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()
    }
}

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Вы можете использовать:

SDImageCache.shared.removeImage(forKey: url?.description, withCompletion: nil)
1 голос
/ 26 февраля 2020

Чтобы удалить изображение из UIButton, нужно также указать состояние.

self.profileButton.setImage(nil, for: .normal)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...