Как установить индикаторType в KingFisher v5.0.0 из расширения на UIImageView? - PullRequest
0 голосов
/ 13 декабря 2018

Я смог сделать что-то вроде этого (используя версию 4.10.1):

extension UIImageView {
    func test() {
        self.kf.indicatorType = .activity
    }
}

теперь с версией 5.0.0 это больше невозможно со следующей ошибкой:

Невозможно присвоить свойству: 'self' является неизменным

Я все еще могу установить его как обычно вне расширения.Есть ли способ установить indictorType из расширения UIImageView?

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Как и в этом выпуске GitHub репозитория библиотеки, оказывается, что переменная kf теперь ссылается на структуру из соображений производительности в Kingfisher, поэтому для ее обработки нам нужносоздайте для него копию, как показано ниже:

extension UIImageView {
    func test() {
        var kf = self.kf
        kf.indicatorType = .activity
    }
}
0 голосов
/ 13 декабря 2018
extension UIImageView {
 func setImages(url:String){
    let activityInd = UIActivityIndicatorView()
    activityInd.center = CGPoint(x: self.frame.size.width  / 2,
                                 y: self.frame.size.height / 2)
    activityInd.color = UIColor.red
    self.addSubview(activityInd)
    activityInd.startAnimating()
    self.kf.setImage(with: URL(string: url), placeholder: #imageLiteral(resourceName: "user-icn"), options: nil, progressBlock: nil) { (img, err, cache, url) in
        activityInd.stopAnimating()
    }
}

}

...