WebView and UISwipeGestureRecognizer



我正在尝试将UISwipeGestureRecognizer附加到Web视图。这是可行的,但我也需要能够上下滚动网页视图。

这是我的代码:

UISwipeGestureRecognizer *upSwipeGesture = [[UISwipeGestureRecognizer alloc] 
initWithTarget:self action:@selector(tapAction)];
upSwipeGesture.direction = UISwipeGestureRecognizerDirectionUp;
upSwipeGesture.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:upSwipeGesture];
[webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:upSwipeGesture];

如果我注释掉最后一行,那么网络视图会滚动,但手势无法识别。如果我没有注释掉最后一行,那么手势会被识别,但网络视图不会滚动。

我希望能够滚动并识别手势。有什么想法吗?谢谢

UIWebView有自己的私有视图,还附带了手势识别器。因此,优先级规则使添加到UIWebView的任何手势识别器无法正常工作。

一种选择是实现UIGestureRecognizerDelegate协议并实现方法gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer。对于其他敲击手势,从该方法返回YES。

通过这种方式,您将调用tap处理程序,并且web视图仍将调用它。

试试这个,

UISwipeGestureRecognizer *upSwipeGesture = [[UISwipeGestureRecognizer alloc] 
initWithTarget:self action:@selector(tapAction)];
upSwipeGesture.direction = UISwipeGestureRecognizerDirectionUp;
upSwipeGesture.cancelsTouchesInView = NO;
upSwipeGesture.delegate=self;
[self.view addGestureRecognizer:upSwipeGesture];

ind实现这种委托方法,

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    return YES;
}

相关内容

  • 没有找到相关文章

最新更新