使用imagePicker在每个UIImageView上显示单独的相机照片

时间:2017-09-08 01:34:02

标签: ios swift uiimageview

我有两个相机上传按钮,每个按钮旁边都有一个单独的UIImageView。我希望左上传将照片放在左边的UIImageView中,然后右上传将照片放在右边的UIImageView中。 See Image

问题在于我无法区分每个图像,因此在两个UIImageView上都会显示相同的图像。

@IBOutlet var imageTake: UIImageView!
@IBOutlet var imageTake2: UIImageView!

var imagePicker: UIImagePickerController!

func takePhoto() {
    imagePicker =  UIImagePickerController()
    imagePicker.delegate = self as UIImagePickerControllerDelegate & UINavigationControllerDelegate
    imagePicker.sourceType = .camera
    present(imagePicker, animated: true, completion: nil)
}

@IBAction func uploadButton(_ sender: Any) {
takePhoto()
}


@IBAction func uploadButton2(_ sender: Any) {
takePhoto()
}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    imagePicker.dismiss(animated: true, completion: nil)
    imageTake.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    imageTake2.image = info[UIImagePickerControllerOriginalImage] as? UIImage

}

我相信我的问题是在这一行中,它将UIImageViews设置为info[UIImagePickerControllerOriginalImage],我认为这是错误的,但我不知道如何使该变量单独保存每张照片。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

你不会同时拍两张照片。所以只需使用实例属性currentButton。在uploadButton方法中,将currentButton设置为sender - 按钮。在didFinishPickingMediaWithInfo中,查看currentButton以查看它是哪个按钮。您知道它是哪个按钮,因此您知道要使用哪个图像视图。如果您为按钮和图像视图提供匹配的tag,将会有所帮助,因此您可以立即知道哪个图像视图与哪个按钮相关。

因此,假设按钮1包含标记1,图像视图1包含标记11。并且按钮2具有标记2并且图像视图2具有标记12。然后在didFinishPickingMediaWithInfo中,提取currentButton,获取其tag,添加10,执行viewWithTag以查找该图像视图,然后将图像插入其中。