仅在子视图中双击识别(不是主视图)

Double-tap recognition just in subview (not main view)

我正在尝试让 Swift 2 (XCode 7) 识别双击子视图,该子视图应该在双击后进入全屏。

我使用了下面的代码,其中 subView 是我拖到主视图上的视图。

此代码最初只会将 "Tap" 打印到控制台进行检查。

但是,无论我在屏幕上的哪个位置双击,我都会得到结果。点击识别不仅限于预期的子视图。

任何人都可以解释一下吗?

@IBOutlet var subView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()

    self.initializeGestureRecognizer()

}

func initializeGestureRecognizer() {

    let tapGesture: UITapGestureRecognizer = UITapGestureRecognizer(target:self, action: Selector("recognizeTapGesture:"))

    tapGesture.numberOfTapsRequired = 2

    subView.addGestureRecognizer(tapGesture)

}

func recognizeTapGesture(sender:UITapGestureRecognizer) {

    print("Tap")

}

试试这个,

func recognizeTapGesture(sender:UITapGestureRecognizer) {
    if sender.view == subView {
       print("Tap")
    }
}

Christian Ettelt 无论如何,如果我给你正确的答案,这对其他人很有帮助。

func initializeGestureRecognizer() 
{

   let tapGesture: UITapGestureRecognizer = UITapGestureRecognizer(target:self, action: Selector("recognizeTapGesture:"))

   tapGesture.numberOfTapsRequired = 2

   subView.addGestureRecognizer(tapGesture)

   self.view.addSubview(subView)

}

请打勾并为我的答案投票。