首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kingfisher and swift 3-无法使用url设置图片

Kingfisher and swift 3-无法使用url设置图片
EN

Stack Overflow用户
提问于 2016-11-25 03:49:07
回答 3查看 10.4K关注 0票数 2

查看文档和迁移指南,我应该能够使用以下代码设置新的映像:

代码语言:javascript
复制
imageView.kf.setImage(with:url ...) 

但实际上我在库中找不到这个方法,我只看到:

代码语言:javascript
复制
imageView.kf.setImage(with:Resource... )

我不知道这个资源到底是如何工作的,因为我在文档中找不到任何东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-25 04:01:45

Resource是一种协议。URL已经进行了扩展以符合此协议。所以你可以这样做:

代码语言:javascript
复制
let url = URL(string: ...)!
imageView.kf.setImage(with: url)

如果您希望对Kingfisher在其缓存中使用的密钥进行一些控制,可以使用ImageResource

代码语言:javascript
复制
let identifier = "..."
let url = URL(string: "http://example.com/images/identifier=\(identifier)")!
let resource = ImageResource(downloadURL: url, cacheKey: identifier)

imageView.kf.setImage(with: resource)
票数 6
EN

Stack Overflow用户

发布于 2018-10-21 15:38:24

我用下面的代码修复了这个问题:

代码语言:javascript
复制
PhotoHelper.shared.imagePickedBlock = { [weak self] (image, url) in
      self?.imageView.kf.setImage(with: url, placeholder: image, options: nil, progressBlock: nil, completionHandler: { imageResult, error, type, cache in
        self?.imageView.image = image
      })
    }

PhotoHelper是原生图像拾取器上的包装器:

代码语言:javascript
复制
    func imagePickerController(_ picker: UIImagePickerController,     didFinishPickingMediaWithInfo info: [String : Any]) {
          currentVC.dismiss(animated: true, completion: {
            if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
              let url = info[UIImagePickerControllerReferenceURL] as! URL
              self.imagePickedBlock?(image, url)
             }
          })
      }
票数 0
EN

Stack Overflow用户

发布于 2019-02-04 17:01:27

Swift 4.2的

代码语言:javascript
复制
import Kingfisher

extension UIImageView {
    func setImage(with urlString: String){
        guard let url = URL.init(string: urlString) else {
            return
        }
        let resource = ImageResource(downloadURL: url, cacheKey: urlString)
        var kf = self.kf
        kf.indicatorType = .activity
        self.kf.setImage(with: resource)
    }
}

如何使用

代码语言:javascript
复制
self.imgVw.setImage(with: your image url)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40793674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档