Ios 从gallery或camera中选择图像后,UIImage不显示
我正在尝试从照相机或多媒体资料中选择图像,并在图像视图中将所选图像显示在屏幕上。但是它没有显示出来Ios 从gallery或camera中选择图像后,UIImage不显示,ios,swift,xcode,uiimage,uiimagepickercontroller,Ios,Swift,Xcode,Uiimage,Uiimagepickercontroller,我正在尝试从照相机或多媒体资料中选择图像,并在图像视图中将所选图像显示在屏幕上。但是它没有显示出来 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { guard let selecte
func imagePickerController(_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
guard let selectedImage = info[.originalImage] as? UIImage else {
fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
}
imageview.image = selectedImage
dismiss(animated: true, completion: nil)
}
我错过了什么
在我的情况下,断点函数根本不调用我以前也遇到过同样的问题,并通过设置图像延迟来解决它,如下所示:
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
self.imageview.image = selectedImage
})
希望这会有所帮助。我以前也遇到过同样的问题,通过设置图像延迟来解决,如下所示:
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
self.imageview.image = selectedImage
})
希望这会有所帮助。确保已将
UIImagePickerController
添加到类中,并已设置UIImagePickerController
实例委托:
class PickerViewController: UIViewController, UIImagePickerControllerDelegate {
var pickerController = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
pickerController.delegate = self
}
}
另外,最好关闭发送到此委托的选取器
参数:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
...
picker.dismiss(animated: true, completion: nil)
}
确保已将
UIImagePickerController
添加到类中,并已设置UIImagePickerController
实例委托:
class PickerViewController: UIViewController, UIImagePickerControllerDelegate {
var pickerController = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
pickerController.delegate = self
}
}
另外,最好关闭发送到此委托的选取器
参数:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
...
picker.dismiss(animated: true, completion: nil)
}
如果断点函数不是在调用,那么我认为您没有在viewDidLoad()中设置imagePicker委托
如果断点函数不是在调用,那么我认为您没有在viewDidLoad()中设置imagePicker委托
这是不对的。您建议使用旧参数的委托方法
[String:Any]
。然后他就创造了一个新的amethod@RobertDresler你说得对。但是,问题在于设置委托。我将编辑答案。很抱歉,你建议了good thing选取器。请解散,我只是没有注意到,因为你没有写下你正在这样做change@RobertDresler看来他在使用<代码>Discover
时没有问题,所以无论如何这都是不必要的。谢谢你。@RobertDresler,又回到答案上来了;-)这是不对的。您建议使用旧参数的委托方法[String:Any]
。然后他就创造了一个新的amethod@RobertDresler你说得对。但是,问题在于设置委托。我将编辑答案。很抱歉,你建议了good thing选取器。请解散,我只是没有注意到,因为你没有写下你正在这样做change@RobertDresler看来他在使用<代码>Discover
时没有问题,所以无论如何这都是不必要的。谢谢你。@RobertDresler,又回到答案上来了;-)