2
Ich bin verrückt nach diesem.UIIMagePickerController funktioniert nicht richtig mit Swift 3
Während der Migration einer einfachen UIIMagePicker-Implementierung habe ich alles richtig funktioniert, keine Probleme, keine Warnung. Der PickerController läuft sowohl auf dem Simulator als auch auf dem Gerät und berücksichtigt das neue Bild nicht und wird nicht auf das UImageView angewendet.
Dies ist mein Code:
@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)
}
}
zu sagen vergessen: das ist, was die consolle druckt aus: [Allgemeine] ein Bildformat mit einem unbekannten Typ erstellen ist ein Fehler – Alex
Danke Nirav D aber das ist nicht der Fall. Meine Datei info.plist bettet bereits Privacy - Camera Usage Description und Privacy - Fotobibliothek Verwendung Beschreibung – Alex
Erzwingen mich zu überprüfen, die Konsole, um hier die Lösung für weitere Untersuchungen zu drucken, gab tatsächlich die Lösung :-) https://forums. Diese developer.apple.com/thread/57026 war mein imagePickerController: func imagePickerController (_ Picker: UIImagePickerController, didFinishPickingMediaWithInfo Infos: [String: ANYOBJECT]) { Dies ist, wie es ändert ('Any' statt' AnyObject'): func imagePickerController (_ wähler: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Beliebige]) { hoffe das könnte jemand mit dem gleichen Problem helfen. – Alex