Ios 使用imagePicker在每个UIImageView上显示单独的相机照片
我有两个摄像头上传按钮,每个按钮旁边都有一个单独的UIImageView。我希望左上传将照片放置在左UIImageView中,右上传将照片放置在右UIImageView中。 问题是我无法区分每个图像,因此相同的图像显示在两个UIImageView上Ios 使用imagePicker在每个UIImageView上显示单独的相机照片,ios,swift,uiimageview,Ios,Swift,Uiimageview,我有两个摄像头上传按钮,每个按钮旁边都有一个单独的UIImageView。我希望左上传将照片放置在左UIImageView中,右上传将照片放置在右UIImageView中。 问题是我无法区分每个图像,因此相同的图像显示在两个UIImageView上 @IBOutlet var imageTake: UIImageView! @IBOutlet var imageTake2: UIImageView! var imagePicker: UIImagePickerController! fun
@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
}
我认为我的问题在于,它将两个UIImageView设置为info[UIImagePickerControllerOriginalImage]
,我认为这是错误的,但我不知道如何使该变量分别保存每张照片
任何帮助都将不胜感激您不能同时拍摄两张照片。因此,只需使用实例属性
currentButton
。在您的uploadButton
方法中,将currentButton
设置为sender
-按钮。在did完成PickingMediaWithInfo
中,查看currentButton
以查看它是哪个按钮。您知道它是哪个按钮,所以您知道要使用哪个图像视图。如果您为按钮和图像视图提供一个匹配的标记
,这样您就可以立即知道哪个图像视图与哪个按钮匹配
因此,假设按钮1有标签
1
,图像视图1有标签11
。按钮2有标签2
,图像视图2有标签12
。然后在did完成PickingMediaWithInfo
,拉出currentButton
,获取其标签
,添加10,执行viewWithTag
以找到该图像视图,并将图像插入其中。不要重复代码。有一个通用的takePhone
方法,可以从两个按钮处理程序调用。我写的答案完全相同!那正是我要做的@丹尼,还有一件事(不必要但有帮助)考虑把<代码>发件人<代码>从<代码> < <代码> > <代码> UIButton < /代码>。但是应该强调的是,这不是真正的“正确”方式。在异步过程中保持状态是很困难的。正确的做法是使用两个不同的delegate
helper对象,每个对象与一个按钮图像视图对关联。但这只是留给读者的练习。:)谢谢你的帮助@matt。我不太明白这将如何转化为代码,我是swift的新手,因此我将尝试研究您的解决方案