【问题标题】:Kingfisher can't setImage for UIButton翠鸟无法为 UIButton 设置图像
【发布时间】:2017-06-09 10:55:46
【问题描述】:

代码是:

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显示TintColor,不会显示图片。

【问题讨论】:

  • url 是有效的字符串。
  • 最终结果是我们必须为ImageButton设置一个占位符图像。这似乎和Android环境中的一样。
  • imageButton.kf.setBackgroundImage(with: url, for: .normal) 试试这个。

标签: swift image uibutton kingfisher


【解决方案1】:

最终结果是我们必须为 ImageButton 设置一个占位符图像。这似乎与 Android 开发环境中的相同。

【讨论】:

    【解决方案2】:

    尝试设置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) 
    
            
    

    【讨论】:

      【解决方案3】:

      尝试使用如下修饰符:

      let modifier = AnyImageModifier { return $0.withRenderingMode(.alwaysOriginal) }
      button.kf.setImage(with: url, for: .normal, placeholder: nil, options: [.imageModifier(modifier)], progressBlock: nil, completionHandler: nil)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 1970-01-01
        • 2018-04-21
        • 2022-01-14
        • 1970-01-01
        • 2019-09-01
        • 1970-01-01
        相关资源
        最近更新 更多