一个用于多个ImageVIews的UIImagePickerController

问题描述 投票:1回答:2

你能不能用UIImagePickerController来帮助我

我在1个ViewController中有12个ImageView。我需要帮助,以便每个ImageView可以从库中选择不同的照片。有人告诉我为他们使用标签,但我不能让它工作,因为我是Swift的新手。

ios swift swift4 uiimagepickercontroller
2个回答
2
投票

为故事板上的每个UIImageView启用User Interaction Enabled

enter image description here

TapGestureRecogniser添加到每个UIImageView。将每个TapGestureRecogniserIBAction连接起来。

@IBAction func tap(_ sender: UITapGestureRecognizer) {

    currentImageView = sender.view as! UIImageView

    let picker = UIImagePickerController()
    picker.delegate = self
    self.present(picker, animated: true, completion: nil)

}

定义变量以存储当前的UIImageView

private var currentImageView: UIImageView? = nil

处理图像选择并将图像分配给currentImageView

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    let image = info[UIImagePickerController.InfoKey.originalImage]
    currentImageView?.image = image as! UIImage

    self.dismiss(animated: true, completion: nil)
}

0
投票

这不是关于迅捷。您在“接口”构建器(或代码中)中设置了“标记”编号.UIResponder后代上有.tag属性。之后,你在回调方法中进行切换,如:

为了使它更清楚:

let picker: UIImagePicker! = { 
    // setup your image picker here, don't forget to set the proper delegate
}()

var lastSender: AnyObject?
func onTouch(_ sender: AnyObject?) {
    // add checks for the sender here
    lastSender = sender
    present(picker, animated: true, completion: *Your Completion*)
}

代表:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])

let image = *Get Image From Info* lastSender?.image = image

© www.soinside.com 2019 - 2024. All rights reserved.