【问题标题】:Detect when a touch begins anywhere on screen even on a UIButton检测触摸何时开始在屏幕上的任何位置,即使是在 UIButton 上
【发布时间】:2020-03-31 20:06:56
【问题描述】:

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

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

ViewController 上有UITapGesturReconizer,但只有在点击完成时才会触发。我希望检测任何触摸何时开始。

【问题讨论】:

标签: ios swift


【解决方案1】:

使用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()
    }
}

【讨论】:

    猜你喜欢
    • 2010-11-13
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多