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