我希望用户使用2个不同的图像视图和按钮(左侧和右侧)拍摄2张不同的照片。我知道如何使用imagepicker委托而不是2个不同的图像视图。两张图片视图都会有不同的照片,并使用不同的按钮拍摄照片。基本上左右两侧无关。
码
import UIKit
class _vc: UIViewController {
@IBOutlet var leftImage: UIImageView!
@IBOutlet var rightImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func takePhotoLeft(_ sender: Any) {
}
@IBAction func takePhotoRgith(_ sender: Any) {
}}
答案 0 :(得分:1)
而不是设置tag
,简单的选项是在ViewController中创建一个类型UIImageView
名称为currentImageView
的实例属性,然后在左右按钮操作集中{{1与currentImageView
和leftImage
合作。之后在rightImage
中将所选图片设置为此didFinishPickingMediaWithInfo
。
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
}
方法中,只需将图片设置为此didFinishPickingMediaWithInfo
。
currentImageView
答案 1 :(得分:0)
快速执行此操作的方法是在viewController上设置一个变量,以跟踪最近按下的按钮。您甚至可以使用Int
之类的简单内容,例如var imagePickerButton: Int = 0
,并根据需要将数字分配给按钮。我喜欢使用tag
属性,所以我不必考虑它。如果你这样做,在你的按钮操作中,你可以在做imagePicker启动代码之前说self.imagePickerButton = sender.tag
。
然后,在didFinishPicking...
方法中,您可以使用switch
或if / else来决定填充哪个imageView,例如
switch self.imagePickerButton {
case 0:
leftImageView.image = image
case 1:
rightImageView.image = image
etc.
}
有很多方法可以解决这个问题,但这是一个非常简单快捷的方法。