Ios 使用图像选择器将照片保存到2个不同的图像视图(swift3)

Ios 使用图像选择器将照片保存到2个不同的图像视图(swift3),ios,swift,swift3,uiimagepickercontroller,photo,Ios,Swift,Swift3,Uiimagepickercontroller,Photo,我希望用户使用2个不同的图像视图和按钮(左侧和右侧)拍摄2张不同的照片。我知道如何使用imagepicker委托完成此操作,但不知道如何使用两个不同的ImageView。两个ImageView都有不同的照片,并使用不同的按钮拍照。基本上,左右两边没有任何关系。 代码 一个快速的方法是在viewController上设置一个变量来跟踪最近按下的按钮。您甚至可以使用像Int这样简单的东西,比如var-imagePickerButton:Int=0,并根据需要为按钮分配数字。我喜欢使用标记属性,因此

我希望用户使用2个不同的图像视图和按钮(左侧和右侧)拍摄2张不同的照片。我知道如何使用imagepicker委托完成此操作,但不知道如何使用两个不同的ImageView。两个ImageView都有不同的照片,并使用不同的按钮拍照。基本上,左右两边没有任何关系。

代码


一个快速的方法是在viewController上设置一个变量来跟踪最近按下的按钮。您甚至可以使用像
Int
这样简单的东西,比如
var-imagePickerButton:Int=0
,并根据需要为按钮分配数字。我喜欢使用
标记
属性,因此我不必考虑它。如果这样做,在按钮操作中,可以在执行imagePicker启动代码之前说
self.imagePickerButton=sender.tag

然后,在您的
didFinishPicking…
方法中,您可以使用
switch
或if/else来决定填充哪个imageView,如

switch self.imagePickerButton {
case 0:
    leftImageView.image = image
case 1:
    rightImageView.image = image
etc.
}

有很多种方法可以解决这个问题,但这很简单,快速一个。

与设置
标记相比,简单的选项是在ViewController中创建一个类型为
UIImageView
name
currentImageView
的实例属性,然后在左右按钮操作中设置
currentImageView
rightImage
。之后,在
didfishpickingMediaWithInfo
中,将所选图像设置为此
currentImageView

var currentImageView: UIImageView?

@IBAction func takePhotoLeft(_ sender: Any) {
    self.currentImageView = self.leftImage
    //ImagePicker code
}

@IBAction func takePhotoRgith(_ sender: Any) {
    self.currentImageView = self.rightImage
    //ImagePicker code
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage
    self.currentImageView?.image = image
    self.dismiss(animated: true)
}
现在,在您的
didfishpickingMediaWithInfo
方法中,只需将图像设置为此
currentImageView

var currentImageView: UIImageView?

@IBAction func takePhotoLeft(_ sender: Any) {
    self.currentImageView = self.leftImage
    //ImagePicker code
}

@IBAction func takePhotoRgith(_ sender: Any) {
    self.currentImageView = self.rightImage
    //ImagePicker code
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage
    self.currentImageView?.image = image
    self.dismiss(animated: true)
}

如果UIImagePickerController.IsSourceType可用(UIImagePickerController SourceType.camera){let imagePicker=UIImagePickerController()imagePicker.delegate=self imagePicker.sourceType=UIImagePickerControllerSourceType.camera;imagePicker.allowsEditing=false self.present(imagePicker,动画:true,完成:nil)?如我在回答中所述,您需要将图像设置为此currentImageView