你能不能用UIImagePickerController来帮助我
我在1个ViewController中有12个ImageView。我需要帮助,以便每个ImageView可以从库中选择不同的照片。有人告诉我为他们使用标签,但我不能让它工作,因为我是Swift的新手。
为故事板上的每个UIImageView启用User Interaction Enabled
。
将TapGestureRecogniser
添加到每个UIImageView
。将每个TapGestureRecogniser
与IBAction
连接起来。
@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)
}
这不是关于迅捷。您在“接口”构建器(或代码中)中设置了“标记”编号.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