2016-09-21 67 views
2

我对此感到疯狂。UIIMagePickerController无法正常使用Swift 3

在迁移一个简单的UIIMagePicker实现时,我有一切正常工作,没有问题,没有警告。 在模拟器和设备上运行,PickerController只是不考虑新图像,不适用于UImageView。

这是我的代码:

@IBOutlet weak var profilePictureImageView: UIImageView! 
let picker = UIImagePickerController() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    picker.delegate = self 
    } 

//Opening Camera to take a new picture 
@IBAction func takeNewPictureButtonDidTouch(_ sender: AnyObject) { 
    if UIImagePickerController.isSourceTypeAvailable(.camera) { 
     picker.allowsEditing = false 
     picker.sourceType = UIImagePickerControllerSourceType.camera 
     picker.cameraCaptureMode = .photo 
     picker.modalPresentationStyle = .fullScreen 
     present(picker,animated: true,completion: nil) 
    } else { 
     noCamera() 
    } 
} 

//Opening the library to select an existing picture 
@IBAction func openPicturesLibraryButtonDidTouch(_ sender: AnyObject) { 
    picker.allowsEditing = false 
    picker.sourceType = .photoLibrary 
    picker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)! 
    picker.modalPresentationStyle = .popover 
    present(picker, animated: true, completion: nil) 
    } 

//MARK: - Delegates 
func imagePickerController(_ picker: UIImagePickerController, 
          didFinishPickingMediaWithInfo info: [String : AnyObject]) 
{ 
    var chosenImage = UIImage() 
    chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage //2 
    profilePictureImageView.contentMode = .scaleAspectFill //3 
    profilePictureImageView.image = chosenImage //4 
    dismiss(animated:true, completion: nil) //5 
} 
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { 
    dismiss(animated: true, completion: nil) 
} 

func noCamera(){ 
    let alertVC = UIAlertController(
     title: "No Camera", 
     message: "Sorry, this device has no camera", 
     preferredStyle: .alert) 
    let okAction = UIAlertAction(
     title: "OK", 
     style:.default, 
     handler: nil) 
    alertVC.addAction(okAction) 
    present(
     alertVC, 
     animated: true, 
     completion: nil) 
} 
} 
+0

忘了说:这是什么consolle正在打印: [通用]创建一个未知类型的图像格式是错误 – Alex

+0

感谢Nirav D,但事实并非如此。我的info.plist文件已经嵌入了隐私 - 照相机使用说明和隐私 - 照片库使用说明 – Alex

+0

强制我检查此处打印的解决方案进行进一步调查,实际上给出了解决方案:-) https://论坛。 developer.apple.com/thread/57026 这是我imagePickerController: FUNC imagePickerController(_选择器:的UIImagePickerController,didFinishPickingMediaWithInfo信息:[字符串:AnyObject]){ 这是它如何改变('Any'而不是' AnyObject'): func imagePickerController(_ picker:UIImagePickerController,didFinishPickingMediaWithInfo info:[String:Any]){ 希望这可以帮助有同样问题的人。 – Alex

回答

0

组代表中自viewDidLoad中