我正在寻找一种简单的方法来检测用户何时开始触摸屏幕,无论他们是在触摸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()
}
}