【发布时间】:2020-03-31 20:06:56
【问题描述】:
我正在寻找一种简单的方法来检测用户何时开始触摸屏幕,无论他们是触摸 UIButton 还是屏幕上的其他位置。
如果我在 ViewController 上使用 touchesBegan(...,它不会检测到对 UIButton 等控件的触摸。
ViewController 上有UITapGesturReconizer,但只有在点击完成时才会触发。我希望检测任何触摸何时开始。
【问题讨论】:
我正在寻找一种简单的方法来检测用户何时开始触摸屏幕,无论他们是触摸 UIButton 还是屏幕上的其他位置。
如果我在 ViewController 上使用 touchesBegan(...,它不会检测到对 UIButton 等控件的触摸。
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()
}
}
【讨论】: