翠鸟:歧义使用'setBackgroundImage(with:for:placeholder:options:progressBlock:completionHandler:)'

时间:2019-01-05 00:37:43

标签: ios swift kingfisher

我一直试图使用Kingfisher来设置按钮的背景图像,但是却遇到了快速的编译器错误:

  

模棱两可的使用   'setBackgroundImage(with:for:placeholder:options:progressBlock:completionHandler:)'

这个表达方式模棱两可吗?我查看了KF文档,我认为这就是您的称呼。

var options: KingfisherOptionsInfo = []
options.append(.forceRefresh)
button.kf.setBackgroundImage(with: URL(string: picture), for: .normal, placeholder: nil, options: options, progressBlock: nil, completionHandler: nil)

5 个答案:

答案 0 :(得分:2)

该错误是因为您需要处理completionHandler而不是传递nil。尝试以下代码:

button.kf.setBackgroundImage(with: URL(string: picture), for: .normal, placeholder: nil, options: options, progressBlock: nil) { result in
    // Handle success or failure here..
    if let error = result.error {
        print(error)
    }
}

答案 1 :(得分:0)

我遇到了同样的问题,我只是通过删除函数调用中的nil参数来解决了这个问题。

imgBanner.kf.setImage(with: url , placeholder:#imageLiteral(resourceName: "landscape.png"), options: nil, progressBlock: nil, completionHandler: nil) 

 imgBanner.kf.setImage(with: url , placeholder:#imageLiteral(resourceName: "landscape.png"))

答案 2 :(得分:0)

快速5

为此替换行。

videoImageView.kf.setImage(with: resource, placeholder: nil, options: [.transition(.fade(0)), .processor(p)], progressBlock: nil) { (result) in
                
}

答案 3 :(得分:0)

我通过剥离未使用的参数(我们在其中传递nil的函数调用)并导入Kingfisher来解决了这个问题。

步骤1 import Kingfisher

第2步button.kf.setBackgroundImage(with: URL(string: urlString), for: .normal, options: options)

答案 4 :(得分:0)

这对我来说非常基本的修复,使用 URL(string: url) 而不是字符串 url Xcode 需要类型特定

cell.imgView.kf.setImage(
            with: URL(string: url),
            placeholder: UIImage(named: "dummyaadhar"),
            options: [
                .processor(processor),
                .scaleFactor(UIScreen.main.scale),
                .transition(.fade(1)),
                .cacheOriginalImage
            ])