繁体   English   中英

为滚动视图上的两指滑动分配唯一行为

[英]Assign unique behaviour for two-finger swipe on scrollview

我想为WKWebView上的两指滑动指定一种独特的行为。 提到这个站点,我编写了如下代码。 它起作用了,但是在Webview上滚动变得非常慢。

有没有更好的方法来避免缓慢滚动?

    let doubleSwipeGestureRecognizer = UISwipeGestureRecognizer.init(target: self, action: "doubleSwiped2")
    doubleSwipeGestureRecognizer.numberOfTouchesRequired = 2
    doubleSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirection.Up
    self.webView!.addGestureRecognizer(doubleSwipeGestureRecognizer)

    for gesture in self.webView!.scrollView.gestureRecognizers!{
        let gestureClass = gesture.classForCoder
        let gestureName = NSStringFromClass(gestureClass)
        print(gestureName)

        if gestureName.containsString("Swipe"){
            // do nothing
        } else {
            gesture.requireGestureRecognizerToFail(doubleSwipeGestureRecognizer)

        }
    }

也许此代码适合您的需求。

首先,将self设置为识别器的委托。

doubleSwipeGestureRecognizer.delegate = self

其次,在自类中编写UIGestureRecognizerDelegate的方法。

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailByGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    if otherGestureRecognizer is UIPanGestureRecognizer && otherGestureRecognizer.numberOfTouches() == 2 {
        return true
    }

    return false
}

第三,删除“ for”句子。

for gesture in self.webView!.scrollView.gestureRecognizers! {
…
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM