我有两个相机上传按钮,每个按钮旁边都有一个单独的UIImageView。我希望左上传将照片放在左边的UIImageView中,然后右上传将照片放在右边的UIImageView中。
问题在于我无法区分每个图像,因此在两个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]
,我认为这是错误的,但我不知道如何使该变量单独保存每张照片。
非常感谢任何帮助
答案 0 :(得分:1)
你不会同时拍两张照片。所以只需使用实例属性currentButton
。在uploadButton
方法中,将currentButton
设置为sender
- 按钮。在didFinishPickingMediaWithInfo
中,查看currentButton
以查看它是哪个按钮。您知道它是哪个按钮,因此您知道要使用哪个图像视图。如果您为按钮和图像视图提供匹配的tag
,将会有所帮助,因此您可以立即知道哪个图像视图与哪个按钮相关。
因此,假设按钮1包含标记1
,图像视图1包含标记11
。并且按钮2具有标记2
并且图像视图2具有标记12
。然后在didFinishPickingMediaWithInfo
中,提取currentButton
,获取其tag
,添加10,执行viewWithTag
以查找该图像视图,然后将图像插入其中。