Как сделать UIImagePickerController для библиотеки фотографий и моей проблемы - PullRequest
0 голосов
/ 20 марта 2020

Я использую UIImagePickerController и хочу, чтобы мое приложение позволяло мне выбирать фотографию из библиотеки фотографий.
У меня есть экран интерфейса:

enter image description here

У меня есть представление «Изображение», и я хочу, чтобы галерея открывалась при нажатии на представление изображения. Затем я выбрал изображение, и оно было вставлено в этот круг.

После того, как я выбрал изображение в библиотеке фотографий, и мое изображение не отображается в круге. Пожалуйста, помогите мне: (

Мой код:

import UIKit

class ProfileSettingsViewController: UIViewController,UINavigationControllerDelegate, UIImagePickerControllerDelegate {

  @IBOutlet weak var cancelButton: UIButton!
  @IBOutlet weak var uploadNewPhoto: UIImageView!


  override func viewDidLoad() {
    super.viewDidLoad()
    //    installCancelButtonColor()
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ProfileSettingsViewController.imageTapped(gesture:)))
    uploadNewPhoto.addGestureRecognizer(tapGesture)
    uploadNewPhoto.isUserInteractionEnabled = true
  }

  @objc func imageTapped(gesture: UIGestureRecognizer) {
    // if the tapped view is a UIImageView then set it to imageview
    if (gesture.view as? UIImageView) != nil {
      print("Image Tapped")
      let imageC = UIImagePickerController()
      imageC.delegate = self
      imageC.sourceType = UIImagePickerController.SourceType.photoLibrary
      present(imageC, animated: true)

    }
  }

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

      guard let image = info[.editedImage] as? UIImage else {
          print("No image found")
          return
      }

      // print out the image size as a test
      print(image.size)
  }

  //  func installCancelButtonColor() {
  //    cancelButton.layer.borderWidth = 1.5
  //    let cancelButtonColor = UIColor(red: 0.20, green: 0.28, blue: 0.36, alpha: 1)
  //    cancelButton.layer.borderColor = cancelButtonColor.cgColor
  //  }


  @IBAction func cancelButton(_ sender: Any) {
    dismiss(animated: true, completion: nil)
  }
}

1 Ответ

1 голос
/ 20 марта 2020

Чтобы увидеть изображение в вашем UIImageView, вам нужно настроить его.

 if let image = info[.editedImage] as? UIImage {
     uploadNewPhoto.image = image
 }

Если вы не получаете изображение от didFinishPickingMediaWithInfo, попробуйте заменить .editedImage на .originalImage

. Будет полезно указать, когда вы откроете PhotoLibrary this

imageC.mediaTypes = ["public.image"] // this will allow the user to see and select photos only
...