1

我能够做这样的事情(使用版本4.10.1):

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

现在使用版本 5.0.0 不再可能出现以下错误:

无法分配给属性:“自我”是不可变的

我仍然可以从扩展外部正常设置它。有没有办法从UIImageView扩展内部设置指标类型?

4

2 回答 2

3

与库的GitHub 存储库上的这个问题一样,事实证明,该kf变量现在引用了一个结构,以考虑性能Kingfisher,因此要处理它,我们需要为它创建一个副本,如下所示:

extension UIImageView {
    func test() {
        var kf = self.kf
        kf.indicatorType = .activity
    }
}
于 2018-12-16T11:12:42.460 回答
1
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()
    }
}

}

于 2018-12-13T11:59:40.933 回答