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

Я хочу создать изображение с фотографией, выбранной из библиотеки фотографий, и отобразить ее в виде прокрутки, нажав кнопку.Но изображение не отображается после выбора, а отображается только при повторном нажатии кнопки.Может кто-нибудь помочь мне с этим, пожалуйста?

@IBAction func imageBtnPressed(_ sender: Any) {

    imagePicker()

    let imageView = UIImageView(frame: CGRect(x: (scrollView.bounds.size.width-200)/2, y:(scrollView.bounds.size.height-100)/2, width: 200, height: 100))
    imageView.image = imageOnCanvas
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    scrollView.addSubview(imageView)

}


func imagePicker(){
    let imagePicker = UIImagePickerController()
    imagePicker.delegate = self
    imagePicker.sourceType = .photoLibrary
    imagePicker.allowsEditing = false
    present(imagePicker, animated: true, completion: nil)
}


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


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

    let selectedImage = info[.originalImage] as? UIImage
    imageOnCanvas = selectedImage
    dismiss(animated: true, completion: nil)
}

1 Ответ

0 голосов
/ 09 декабря 2018

Ваш код не делает паузу только потому, что представлен UIImagePickerController.Итак, давайте посмотрим на ваш код:

@IBAction func imageBtnPressed(_ sender: Any) {
    imagePicker()
    let imageView = UIImageView(frame: CGRect(x: (scrollView.bounds.size.width-200)/2, y:(scrollView.bounds.size.height-100)/2, width: 200, height: 100))
    imageView.image = imageOnCanvas
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    scrollView.addSubview(imageView)
}
func imagePicker(){
    let imagePicker = UIImagePickerController()
    imagePicker.delegate = self
    imagePicker.sourceType = .photoLibrary
    imagePicker.allowsEditing = false
    present(imagePicker, animated: true, completion: nil)
}

То есть в точности как выражение (подстановка содержимого функции imagePicker для вызова функции):

@IBAction func imageBtnPressed(_ sender: Any) {
    let imagePicker = UIImagePickerController()
    imagePicker.delegate = self
    imagePicker.sourceType = .photoLibrary
    imagePicker.allowsEditing = false
    present(imagePicker, animated: true, completion: nil)
    let imageView = UIImageView(frame: CGRect(x: (scrollView.bounds.size.width-200)/2, y:(scrollView.bounds.size.height-100)/2, width: 200, height: 100))
    imageView.image = imageOnCanvas
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    scrollView.addSubview(imageView)
}

Ну, как вы можете ясно видеть, вы имеете в виду imageOnCanvas, когда он еще не установлен.imagePicker все еще показывает;пользователь еще не выбрал фотографию.Но ваш код полностью подошел к концу.Вы добавили подпредставление, состоящее из вида изображения, содержащего изображение, которое было в imageOnCanvas до запуска кода .

...