【问题标题】:Detect gesture over all application检测所有应用程序的手势
【发布时间】:2017-11-09 22:03:41
【问题描述】:

我打算检测我的应用程序上的所有双指向下滑动手势。

我扩展了 Window 类,并添加了这个:

public extension UIWindow {

    func initGestureTouch() {
        let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
        swipeDown.direction = .down
        swipeDown.numberOfTouchesRequired = 2
        self.addGestureRecognizer(swipeDown)
    }
}

它几乎可以在任何地方工作,但在 ScrollViews(TableViews 等)上。在此视图中,只有滚动视图才能获得手势。

有没有办法做到这一点?这是一个特殊的手势,用于打开 Helper Assistent。

Ps:到目前为止,我发现的唯一方法是在每个滚动视图上添加双手势检测,但这对我来说还不够。

【问题讨论】:

  • 你能写完整的代码吗,你是如何扩展 Window 类的?
  • 我已经编辑了我的问题。所以在 appDelegate (didFinishLauching...) 我添加了这个:self.window?.initGestureTouch()

标签: ios swift swift3


【解决方案1】:

试试这个:

swipeDown.cancelsTouchesInView = True
swipeDown.delaysTouchesBegan = True

第一个表示如果被识别,触摸将不会发送到下面的视图。 发送触摸时,第二个将延迟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多