使用 Swift 中的 UITapGestureRecognizer 检查按下了哪个图像视图

Check which image view was pressed using UITapGestureRecognizer in Swift

我有三个UITapGestureRecognizers
他们看起来像这样:

gestureImageViewUp = UITapGestureRecognizer(target: self, action: #selector(ViewController.checkChoice(_:)))
self.imageViewUp.addGestureRecognizer(gestureImageViewUp)

gestureImageViewDown = UITapGestureRecognizer(target: self, action: #selector(ViewController.checkChoice(_:)))
self.imageViewDown.addGestureRecognizer(gestureImageViewDown)

gestureImageViewMiddle = UITapGestureRecognizer(target: self, action: #selector(ViewController.checkChoice(_:)))
self.imageViewMiddle.addGestureRecognizer(gestureImageViewMiddle)

我想看看他们中的哪一个被按下了。我该如何解决?

您不需要超过一个识别器,只需将其附加到视图并在选择器中检查单击了哪个图像视图。

func onPress(_ guesture: UIGestureRecognizer) {

    guard let location = guesture.location(in: self.view)  else { return }

    if gestureImageViewUp.frame.contains(location) {
        // …
    }
    if gestureImageViewDown.frame.contains(location) {
        // …
    }
    if gestureImageViewMiddle.frame.contains(location) {
        // …
    }
}

没有测试抱歉,如果你粘贴代码而不是快照会更容易