[英]Avoiding conflicts with two-finger swipe gesture and UIPageViewController
[英]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.