Как установить изображение, снятое / выбранное на изображение? - PullRequest
0 голосов
/ 18 февраля 2019

Мне удалось сделать или выбрать фотографию и загрузить ее в Firebase Storage, но я не уверен, как установить эту фотографию в UIImage, см. Код:

UIImage, для которого необходимо установить фотографию:

@IBOutlet weak var myPhoto: UIImageView!

Как выбрать или сделать фотографию:

imagePicker.allowsEditing = true

    let alertController = UIAlertController(title: "Add a Photo", message: "Choose From", preferredStyle: .actionSheet)

    let cameraAction = UIAlertAction(title: "Camera", style: .default) { (action) in
        self.imagePicker.sourceType = .camera
        self.imagePicked = sender.tag // new
        self.present(self.imagePicker, animated: true, completion: nil)

    }

    let photosLibraryAction = UIAlertAction(title: "Photos Library", style: .default) { (action) in
        self.imagePicker.sourceType = .photoLibrary
        self.imagePicked = sender.tag // new
        self.present(self.imagePicker, animated: true, completion: nil)

    }

    let savedPhotosAction = UIAlertAction(title: "Saved Photos Album", style: .default) { (action) in
        self.imagePicker.sourceType = .savedPhotosAlbum
        self.imagePicked = sender.tag // new
        self.present(self.imagePicker, animated: true, completion: nil)

    }

    let cancelAction = UIAlertAction(title: "Cancel", style: .destructive, handler: nil)

    alertController.addAction(cameraAction)
    alertController.addAction(photosLibraryAction)
    alertController.addAction(savedPhotosAction)
    alertController.addAction(cancelAction)

    present(alertController, animated: true, completion: nil)

Как установить фотографию, которую я только что выбрал или сделал для myPhoto?

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете получить выбранное или захваченное изображение с помощью функции UIImagePickerControllerDelegate.Вам необходимо установить делегат вашего экземпляра UIImagePickerController (picker).

Запрос разрешения

Приложение должно запрашивать разрешение у пользователя перед доступом к камере / сохраненным фотографиям. Приложение должноотобразить сообщение пользователю, объясняющее, почему ему нужен доступ к камере или библиотеке фотографий.Вы можете установить это сообщение, установив ключи NSCameraUsageDescription и NSPhotoLibraryUsageDescription в файле Info.plist вашего приложения.

Это будет работать наверняка

imagePicker.delegate = self


extension StackOverflowViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {

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

        var selectedImage: UIImage?
        if let editedImage = info[.editedImage] as? UIImage {
            selectedImage = editedImage
            self.imgView.image = selectedImage!
        } else if let originalImage = info[.originalImage] as? UIImage {
            selectedImage = originalImage
            self.imgView.image = selectedImage!
            picker.dismiss(animated: true, completion: nil)
        }
    }

    func imagePickerControllerDidCancel( picker: UIImagePickerController) {
        picker.dismiss(animated: true) {
            // Further logic to perform 
        }
    }
}

Вы можете просмотреть все остальные, связанные сUIImagePickerController из этой официальной ссылки.

https://developer.apple.com/documentation/uikit/uiimagepickercontroller/infokey/1619164-originalimage

...