使用Kingfisher在imagePickerController中设置图像
我想使用Kingfisher
将图像设置为我的UIImageView
,imagePickerController
但没有任何反应。首先,我将用户引导至照片库。在用户选择照片并返回后,我得到UIImage
的照片和imagePickerController
的URL
。翠鸟没有办法设置UIImage
。所以我尝试从URL设置它,但我只看到空UIImageView
。我的代码是;使用Kingfisher在imagePickerController中设置图像
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 and swift 3 - cannot set image with url但它没有奏效。
是的,你是对的。这真的很奇怪。
尝试在拾取器解除方法完成时设置更改后的图像。也许它会工作:
picker.dismiss(animated: true, completion: nil)
self.imageView.image = self.changedImage
}
我还没有尝试从本地URL doenloading,但我敢肯定有一种方法来使用翠鸟下载图像。
使用ImageDownloader下载的图像没有缓存
ImageDownloader.default.downloadImage(with: url, options: [], progressBlock: nil) {
(image, error, url, data) in
print("Downloaded Image: \(image)")
}
您可以参考这个小抄。
呀,必须有一种简单的方法来设置图像与翠鸟一起做这在完成处理程序。我查了一下备忘单,但找不到。这很奇怪。 – AtaerCaner
在哪个上下文中你想使用'Kingfisher'?它是否用于缓存功能? – Kiester
与主线程
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
dismiss(animated: true, completion: {
DispatchQueue.main.async {
self.imgProfile.kf.base.image = image
}
})
}
这是作品。 Thnx很多。这是整个互联网对这种情况唯一的答案。 Thnx队友 – AtaerCaner