在拍摄照片或从照片库中选择图片后,我尝试在UIImageView中填充图像。
下面是处理照相机和照片库激活的代码:
@IBAction func activateCmera(_ sender: Any) {
if (UIImagePickerController.isSourceTypeAvailable(.camera)) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .camera
imagePicker.allowsEditing = false
self.present(imagePicker, animated: true, completion: nil)
}
}
@IBAction func activatePhotoLib(_ sender: Any) {
if (UIImagePickerController.isSourceTypeAvailable(.photoLibrary)) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .photoLibrary
imagePicker.allowsEditing = false
self.present(imagePicker, animated: true, completion: nil)
}
}下面是在UIImageView中填充图像的代码:
@IBOutlet weak var imageView: UIImageView!
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
self.imageView.contentMode = .scaleAspectFit
self.imageView.image = image
self.dismiss(animated: true, completion: nil);
}目前,在我用相机拍照或从我的照片库中选择图片后,我被重定向到这个应用程序的初始视图,而没有UIImageView空间与照片更新。
任何帮助都是非常感谢的!
发布于 2016-11-27 07:59:23
在Swift 3中,通过将下面的keys添加到plist中,您需要获得访问plist的权限,并且需要使用正确的delegate方法。

将UIImagePickerControllerDelegate& UINavigationControllerDelegate添加到class中,并将imagePicker delegate设置为viewDidLoad &尝试下面的代码。
let imagePicker = UIImagePickerController()
@IBAction func activatePhotoLib(_ sender: UIButton) {
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) {
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary;
imagePicker.allowsEditing = false
self.present(imagePicker, animated: true, completion: nil)
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.image = image
}
picker.dismiss(animated: true, completion: nil);
}输出:updated

发布于 2017-07-25 19:30:14
这似乎是一个问题,因为XCode未能解释imagePickerController函数语法已经改变(自Swift 3以来)。你会发现这两种方式来编写函数在网上到处都是。您还可以在XCode中使用这两种方法,而不会出现任何错误。但是只有第二个才能真正得到正确的图像。
(Option 1 - doesn't work, but XCode doesn't flag it):
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { }
(Option 2 - this is the right syntax!):
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { }发布于 2017-11-17 16:08:02
**您需要保存类似于全局对象的UIImagePickerController,在此之后,您需要将此代码推到操作函数**上。
@objc func getImage() {
imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
imagePicker.allowsEditing = false
imagePicker.modalPresentationStyle = .overCurrentContext
present(imagePicker, animated: true)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.image = image
}
self.dismiss(animated: true, completion: nil);
}https://stackoverflow.com/questions/40826760
复制相似问题