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)
}
}
Забыла сказать: это то, что Consolle печатает из: [Generic] Создание формата изображения с неизвестным типом является ошибкой – Alex
Спасибо Nirav D, но это не тот случай. Мой файл info.plist уже содержит конфиденциальность. Использование камеры. Конфиденциальность. - Библиотека фотографий. Описание использования. – Alex
. Заставляя меня проверять консоль, чтобы напечатать здесь решение для дальнейшего изучения, фактически дал решение :-) https: // форумы. developer.apple.com/thread/57026 Это был мой imagePickerController: функ imagePickerController (_ подборщика: UIImagePickerController, didFinishPickingMediaWithInfo информация: [String: AnyObject]) { Это, как он меняется ('Any' вместо' AnyObject'): func imagePickerController (_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) { надеюсь, что это может помочь кому-то с той же проблемой. – Alex