首页 > 解决方案 > 捕获两个图像并将其显示到两个 UIImageView

问题描述

我打算在同一个视图控制器上拍摄 2 张​​个人资料照片,两者都有自己独立的按钮和图像视图。

我为此使用了 Swift 版本 4。

class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {

  @IBOutlet weak var profileA: UIImageView!
  @IBOutlet weak var profileB: UIImageView!

  var profileAPicker: UIImagePickerController!
  var profileBPicker: UIImagePickerController!

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

    profileAPicker.dismiss(animated: true, completion: nil)
    profileA.image = info[.originalImage] as? UIImage

    profileBPicker.dismiss(animated: true, completion: nil)
    profileB.image = info[.originalImage] as? UIImage
  }

  @IBAction func takeProfileA(_ sender: Any) {

    profileAPicker = UIImagePickerController()
    profileAPicker.delegate = self
    profileAPicker.sourceType = .camera

    present(profileAPicker, animated: true , completion: nil)
  }

  @IBAction func takeProfileB(_ sender: Any) {

    profileBPicker = UIImagePickerController()
    profileBPicker.delegate = self
    profileBPicker.sourceType = .camera

    present(profileBPicker, animated: true , completion: nil)
  }

}

当我为 profileA 拍照时它可以工作,但是当我为 profileB 拍照时它会停止。

标签: iosswift

解决方案


如果我理解正确的问题...似乎可以通过这种方式解决问题:

  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    picker.dismiss(animated: true, completion: nil)
    if picker == profileAPicker {
        profileA.image = info[.originalImage] as? UIImage
    }
    else if picker == profileBPicker {
        profileB.image = info[.originalImage] as? UIImage
    }
}

推荐阅读