首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebView和UISwipeGestureRecognizer

WebView和UISwipeGestureRecognizer
EN

Stack Overflow用户
提问于 2013-12-16 10:10:35
回答 1查看 300关注 0票数 1

我试图有一个UISwipeGestureRecognizer是附加到一个网络视图。这是可行的,但我也需要能够滚动向上和向下的网页视图。

这里是我的代码:

代码语言:javascript
复制
UISwipeGestureRecognizer *upSwipeGesture = [[UISwipeGestureRecognizer alloc] 
initWithTarget:self action:@selector(tapAction)];
upSwipeGesture.direction = UISwipeGestureRecognizerDirectionUp;
upSwipeGesture.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:upSwipeGesture];

[webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:upSwipeGesture];

如果我注释掉最后一行,那么webview会滚动,但是这个手势是不被识别的。如果我没有注释掉最后一行,那么手势就会被识别,但是webview不会滚动。

我希望能够滚动和得到认可的手势。有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-12-16 10:40:45

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

一种选择是实现UIGestureRecognizerDelegate协议并实现gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer方法。从此方法返回YES用于其他点击手势。

这样,您就可以调用tap处理程序,而web视图仍将得到它的调用。

尝尝这个,

代码语言:javascript
复制
UISwipeGestureRecognizer *upSwipeGesture = [[UISwipeGestureRecognizer alloc] 
initWithTarget:self action:@selector(tapAction)];
upSwipeGesture.direction = UISwipeGestureRecognizerDirectionUp;
upSwipeGesture.cancelsTouchesInView = NO;
upSwipeGesture.delegate=self;
[self.view addGestureRecognizer:upSwipeGesture];

ind实现此委托方法,

代码语言:javascript
复制
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    return YES;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20608193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档