当触摸在屏幕上的任何地方开始时进行检测,即使是在UIButton上



我正在寻找一种简单的方法来检测用户何时开始触摸屏幕,无论他们是在触摸UIButton还是在屏幕上的其他地方。

如果我在ViewController上使用touchesBegan(...,它不会检测到对UIButtons等控件的触摸。

ViewController上有UITapGesturReconizer,但只有在点击完成时才会触发。我想知道什么时候开始触摸。

使用UILongPressGestureRecognizer并将其minimumPressDuration设置为0。在UIGestureRecognizerStateBegan状态下,它将起到触地跌落的作用。

func setupTap() {
let touchDown = UILongPressGestureRecognizer(target:self, action: #selector(didTouchDown))
touchDown.minimumPressDuration = 0
view.addGestureRecognizer(touchDown)
}
@objc func didTouchDown(gesture: UILongPressGestureRecognizer) {
if gesture.state == .began {
doSomething()
}
}

相关内容

最新更新