Kingfisher не может установить изображение для UIButton
Код является:
let url = URL(string: (user?.avatar)!)!
print(url.absoluteString)
let resource = ImageResource(downloadURL: url, cacheKey: "my_avatar")
testUIButton.kf.setImage(with: resource, for:.normal)
Результат testUIButton display TintColor, изображение не будет отображаться.
3 ответа
Попробуйте установить
UIButton
Тип
Custom
. У меня это работает.
let btnCustom = UIButton(type: .custom)
if let imgURL = URL(string: imgURLString) {
btnCustom.kf.setImage(with: imgURL, for: .normal)
} else {
btnCustom.setImage(UIImage(named: "img_user"), for: .normal)
}
btnCustom.cornerRadius = 15
btnCustom.clipsToBounds = true
btnCustom.addTarget(self, action: #selector(self.customAction)), for: .touchUpInside)
view.addSubview(btnCustom)
Окончательный результат - мы должны установить изображение-заполнитель для ImageButton. Похоже, это то же самое, что и в среде разработчиков Android.
Попробуйте использовать модификатор, как показано ниже:
let modifier = AnyImageModifier { return $0.withRenderingMode(.alwaysOriginal) }
button.kf.setImage(with: url, for: .normal, placeholder: nil, options: [.imageModifier(modifier)], progressBlock: nil, completionHandler: nil)