我试图有一个UISwipeGestureRecognizer是附加到一个网络视图。这是可行的,但我也需要能够滚动向上和向下的网页视图。
这里是我的代码:
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不会滚动。
我希望能够滚动和得到认可的手势。有什么想法吗?谢谢!
发布于 2013-12-16 10:40:45
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;
}https://stackoverflow.com/questions/20608193
复制相似问题