繁体   English   中英

使用 Kingfisher 在 imagePickerController 中设置图像

[英]Set Image in imagePickerController with using Kingfisher

我想使用KingfisherimagePickerController中将图像设置为我的UIImageView但没有任何反应。 首先,我将用户定向到照片库。 在用户选择照片并返回后,我将照片作为UIImageimagePickerControllerURL Kingfisher 没有设置UIImage的方法。 所以我尝试从 URL 设置它,但我只看到一个空的UIImageView 我的代码是;

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    let changedImage = info[UIImagePickerControllerOriginalImage] as! UIImage
    let url = info[UIImagePickerControllerReferenceURL] as! URL


    profilePhotoImage.kf.setImage(with: url)

    picker.dismiss(animated: true, completion: nil)

    }

我的网址是, "assets-library://asset/asset.JPG?id=D21C7124-472A-44F8-A22B-B3A5A0C48E32&ext=JPG" 0x00000001702f7680" 。我的UIImage有什么问题"assets-library://asset/asset.JPG?id=D21C7124-472A-44F8-A22B-B3A5A0C48E32&ext=JPG" 0x00000001702f7680" “确定我能得到的照片,因为当我尝试集changedImage没有kf它的工作原理我试过, 翠鸟,快捷3 -不能设定画面与网址,但没有奏效。

与主线程一起在完成处理程序上执行此操作

  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {


    dismiss(animated: true, completion: {
            DispatchQueue.main.async {
                self.imgProfile.kf.base.image = image
            }
    })

}

嗯你是对的。 真是太奇怪了。

尝试在选择器关闭方法完成时设置更改的图像。 也许它会起作用:

picker.dismiss(animated: true, completion: nil)
 self.imageView.image = self.changedImage
}

我还没有尝试从本地 URL 加载,但我确定有一种方法可以使用 Kingfisher 下载图像。

使用 ImageDownloader 下载图片而不缓存

ImageDownloader.default.downloadImage(with: url, options: [], progressBlock: nil) { 
(image, error, url, data) in 
    print("Downloaded Image: \(image)")
}

你可以参考这个备忘单。

https://github.com/onevcat/Kingfisher/wiki/Cheat-Sheet

SWIFT 5 你可以试试这个代码:

让 addURL = "https://..."

    if let urlPhotos = URL(string: addURL) {
        image.kf.setImage(with: urlPhotos, placeholder: UIImage(systemName: "folder"))

确保你向 UIImageView 声明了 @IBOutlet。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM