UIImage не отображается после выбора изображения из галереи или камеры - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь выбрать изображение с камеры или галереи и показываю выбранное изображение на экране в режиме просмотра изображений. Но это не показывает.

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

        guard let selectedImage = info[.originalImage] as? UIImage else {
            fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
        }

        imageview.image = selectedImage

        dismiss(animated: true, completion: nil)
    }

Чего мне не хватает?

enter image description here

В моем случае функция точки останова вообще не вызывает

Ответы [ 3 ]

0 голосов
/ 12 января 2019

Убедитесь, что вы добавили UIImagePickerControllerDelegate в ваш класс и настроили ваш UIImagePickerController представитель экземпляра:

class PickerViewController: UIViewController, UIImagePickerControllerDelegate {
    var pickerController = UIImagePickerController()

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

Кроме того, лучше отклонить параметр picker, отправленный этому делегату:

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

    picker.dismiss(animated: true, completion: nil)
}
0 голосов
/ 12 января 2019

Если ваша функция точки останова не вызывает, то я думаю, что вы не установили делегат imagePicker в viewDidLoad ()

override func viewDidLoad() {
     super.viewDidLoad()
     imagePicker.delegate = self   
   }
0 голосов
/ 12 января 2019

Ранее я сталкивался с той же проблемой и решил ее, установив изображение с задержкой, как показано ниже:

DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
    self.imageview.image = selectedImage
})

Надеюсь, это поможет.

...