gpt4 book ai didi

ios - 检查按下了哪个 gestureRecognizer

转载 作者:行者123 更新时间:2023-11-28 11:39:34 25 4
gpt4 key购买 nike

我将 gestureRecognizerUIImageView 一起使用。我有两个 UIImageView。我需要在两个 UIImageView 中上传图片。为了打开 UIImagePickerController(),我在两个 UIImageView 上都使用了 gestureRecognizer

所以我需要在 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])

的不同 UIImageView 上传图片

如何从库中上传图片?

这是我的代码:

@IBOutlet weak var mainPhotoImageView: UIImageView!
@IBOutlet weak var addImageView: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()

configureGestureRecognizer()

}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let chosenImage = info[UIImagePickerControllerEditedImage] as? UIImage
if chosenImage != nil {
logoImageView.image = chosenImage
dismiss(animated: true, completion: nil)
}
}

@objc func addLogoHall(_ sender: AnyObject) {
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = true
picker.sourceType = .photoLibrary
present(picker, animated: true, completion: nil)
}

@objc func addMainPhoto(_ sender: AnyObject) {
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = true
picker.sourceType = .photoLibrary
present(picker, animated: true, completion: nil)
}

func configureGestureRecognizer() {
let addHallLogo = UITapGestureRecognizer(target: self, action: #selector(AddPhotoAndLogoViewController.addLogoHall(_:)))
logoImageView.isUserInteractionEnabled = true
logoImageView.addGestureRecognizer(addHallLogo)
let addMainPhotoImage = UITapGestureRecognizer(target: self, action: #selector(AddPhotoAndLogoViewController.addMainPhoto(_:)))
mainPhotoImageView.isUserInteractionEnabled = true
mainPhotoImageView.addGestureRecognizer(addMainPhotoImage)
}

所以在 func imagePickerController 中,我需要检测使用了哪个 gestureRecognizer。或者也许有其他机会去做?

最佳答案

您可以像这样为选择器添加不同的标签:

@objc func addLogoHall(_ sender: AnyObject) {
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = true
picker.sourceType = .photoLibrary
picker.view.tag = 1
present(picker, animated: true, completion: nil)
}

@objc func addMainPhoto(_ sender: AnyObject) {
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = true
picker.view.tag = 2
picker.sourceType = .photoLibrary
present(picker, animated: true, completion: nil)
}

然后你可以像这样通过这个标签来识别:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let chosenImage = info[UIImagePickerControllerEditedImage] as? UIImage
if chosenImage != nil {
if(picker.view.tag == 1) {
logoImageView.image = chosenImage
} else {
mainImageView.image = chosenImage
}

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

关于ios - 检查按下了哪个 gestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54079849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com