Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用翠鸟在imagePickerController中设置图像_Ios_Swift_Swift3_Uiimage_Kingfisher - Fatal编程技术网

Ios 使用翠鸟在imagePickerController中设置图像

Ios 使用翠鸟在imagePickerController中设置图像,ios,swift,swift3,uiimage,kingfisher,Ios,Swift,Swift3,Uiimage,Kingfisher,我想在imagePickerController中使用Kingfisher将图像设置为我的UIImageView,但什么也没发生。首先,我将用户引导到照片库。用户选择照片并返回后,我将照片作为UIImage和imagePickerController中的URL。翠鸟没有设置UIImage的方法。所以我尝试从URL设置它,但我只看到一个空的UIImageView。我的代码是 func imagePickerController(_ picker: UIImagePickerController,

我想在
imagePickerController
中使用
Kingfisher
将图像设置为我的
UIImageView
,但什么也没发生。首先,我将用户引导到照片库。用户选择照片并返回后,我将照片作为
UIImage
imagePickerController
中的
URL
。翠鸟没有设置
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)

    }
我的url是,
“资产-library://asset/asset.JPG?id=D21C7124-472A-44F8-A22B-B3A5A0C48E32&ext=JPG“0x00000001702f7680“
。我的URL有什么问题吗?或者我可以用翠鸟设置
UIImage
。我确信我能得到照片,因为当我尝试设置
changedImage
而不设置
kf
时,它会起作用。我试过了
但是它不起作用。

我没有尝试从本地URL下载,但我确信有一种方法可以使用翠鸟下载图像

使用ImageDownloader在不缓存的情况下下载图像

ImageDownloader.default.downloadImage(with: url, options: [], progressBlock: nil) { 
(image, error, url, data) in 
    print("Downloaded Image: \(image)")
}
你可以参考这张备忘单


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

尝试在picker Disclose方法完成时设置更改的图像。也许它会起作用:

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

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

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


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

}

是的,一定有一个简单的方法来树立翠鸟的形象。我查看了备忘单,但找不到。太奇怪了。你想在哪种情况下使用翠鸟?它是用于缓存功能的吗?