【问题标题】:use image picker to save photos to 2 different image view (swift3)使用图像选择器将照片保存到 2 个不同的图像视图(swift 3)
【发布时间】:2017-03-03 23:45:16
【问题描述】:

我希望用户使用 2 个不同的图像视图和按钮(左侧和右侧)拍摄 2 张​​不同的照片。我知道如何使用 imagepicker Delegate 但不使用 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) {
}}

【问题讨论】:

    标签: ios swift swift3 uiimagepickercontroller photo


    【解决方案1】:

    而不是设置tag,简单的选项是在您的ViewController 中创建一个UIImageView 名称currentImageView 类型的实例属性,然后在您的左右按钮操作集中设置currentImageViewleftImage 和@ 987654326@。之后在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

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        let image = info[UIImagePickerControllerOriginalImage] as! UIImage
        self.currentImageView?.image = image
        self.dismiss(animated: true)
    }
    

    【讨论】:

    • 这是放入按钮的代码 if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){ let imagePicker = UIImagePickerController() imagePicker.delegate = self imagePicker.sourceType = UIImagePickerControllerSourceType.camera; imagePicker.allowsEditing = false self.present(imagePicker, animated: true, completion: nil) ?
    • 您需要将图像设置为此 currentImageView,正如我在回答中提到的那样
    【解决方案2】:

    一种快速的方法是在视图控制器上设置一个变量来跟踪最近按下的按钮。您甚至可以使用像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.
    }
    

    有很多方法可以解决这个问题,但这是一种非常简单快捷的方法。

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 2016-06-16
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2017-01-28
      • 1970-01-01
      相关资源
      最近更新 更多