изображение не отображается в uiimageview - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу получить изображение из библиотеки, но изображение не отображается, пока я не выберу из библиотеки

это мой код

@IBAction func btnProfile(_ sender: UIButton) {
        let alert = UIAlertController(title: "Change Profil Image", message: "Pilih Foto", preferredStyle: UIAlertControllerStyle.actionSheet)
        alert.addAction(UIAlertAction(title: "Gunakan Kamera", style: .default, handler: { (action: UIAlertAction!) in
            print("Gunakan Kamera")
            if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){
                let imagePicker = UIImagePickerController()
                imagePicker.delegate = self
                imagePicker.sourceType = UIImagePickerControllerSourceType.camera;
                imagePicker.allowsEditing = false
                self.present(imagePicker, animated: true, completion: nil)
            }
        }))
        alert.addAction(UIAlertAction(title: "Ambil Foto dari Galery", style: .default, handler: { (action: UIAlertAction!) in
            print("Ambil Foto dari Galery")
            if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary){
                let imagePicker = UIImagePickerController()
                imagePicker.delegate = self
                imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary;
                imagePicker.allowsEditing = true
                self.present(imagePicker, animated: true, completion: nil)

            }
        }))
        alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (action: UIAlertAction!) in
            print("Cancel")
        }))
        present(alert, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    guard let image = info[.originalImage] as? UIImage else { return } // error in here >> 'UIImage?' is not convertible to 'UIImage' >> and warning yellow >> Cast from 'Slice<Dictionary<UIImagePickerController.InfoKey, Any>>' (aka 'Slice<Dictionary<NSString, Any>>') to unrelated type 'UIImage' always fails

    picker.dismiss(animated: true, completion: nil)

    imgProf.image = image
}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    dismiss(animated: true, completion: nil)
}

Я хочу отобразить изображение в UIimageview, но после извлечения его из библиотеки оно не всегда появляется, ошибка в охране, пусть изображение и предупреждение желтого цвета там я использую swift 3

это UIImagePickerControllerDelegate

public protocol UIImagePickerControllerDelegate : NSObjectProtocol {


    @available(iOS 2.0, *)
    optional public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])

    @available(iOS 2.0, *)
    optional public func imagePickerControllerDidCancel(_ picker: UIImagePickerController)
}

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018
self.present(imagePicker, animated: true, completion: {
    imagePicker.delegate = self
})

Установка делегата сборщика завершена.

0 голосов
/ 09 ноября 2018

Я попробовал этот код, и он работал

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        var selectedImageFromPicker: UIImage?
        if let editedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
            selectedImageFromPicker = editedImage
        } else if let originalImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
            selectedImageFromPicker = originalImage
        }

        if let selectedImage = selectedImageFromPicker {
            imgProf.image = selectedImage
        }
        dismiss(animated: true, completion: nil)
    }

и спасибо за @Kamran, ваш ответ на изменение позиции верный

...