4

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

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用翠鸟设置吗?我确定我可以得到照片,因为当我尝试在changedImage没有kf它的情况下设置它时。我尝试了 Kingfisher 和 swift 3 - 无法使用 url 设置图像,但它不起作用。

4

4 回答 4

3

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

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


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

}
于 2017-09-08T05:01:32.020 回答
2

是的,没错。真是太奇怪了。

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

picker.dismiss(animated: true, completion: nil)
 self.imageView.image = self.changedImage
}
于 2017-08-25T14:04:39.897 回答
0

我没有尝试从本地 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

于 2017-08-03T16:26:24.553 回答
0

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

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

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

确保将 @IBOutlet 声明为 UIImageView。

于 2021-07-19T21:55:46.717 回答