如何在 ViewController 中的 UIWebView 之上处理 SwipeGestures?

Posted

技术标签:

【中文标题】如何在 ViewController 中的 UIWebView 之上处理 SwipeGestures?【英文标题】:How to handle SwipeGestures on top of a UIWebView in the ViewController? 【发布时间】:2012-10-04 21:49:53 【问题描述】:

我正在深入研究 ios 开发,为此我正在开发一个显示博文的简单应用。

我的 DetailViewController 中有以下设置:

我想要实现的是,当用户在屏幕上向左或向右滑动时,我会更改 webView 的内容。

然而,滑动手势似乎被 UIWebView 吞没了,所以我想我可以在顶部制作一个透明的 UIView(“Posts Detail Touch Interceptor View”)并让它处理滑动手势并将它们转发到 DetailViewController .

这有效,DetailViewController 中的滑动处理程序被调用,但我无法再在 webView 中滚动或按下任何按钮。我假设,因为透明 UIView 在到达 UIWebView 之前会消耗所有事件。

让透明视图下方的所有控件正常响应事件,同时将滑动手势转发到 DetailViewController 的最佳方法是什么?

【问题讨论】:

【参考方案1】:

您仍然可以将滑动识别器添加到 UIWebView 并在您的手势识别器委托中实现此方法:

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

或者,您可以查看此 SO 帖子以在两个视图中处理事件:

Touch event handled by multiple views

我建议首先尝试在 UIWebView 中使用您自己的手势识别器。我之前已经成功完成了。

【讨论】:

是的,我在发布问题一小时后发现了这一点。这行得通,感谢您的确认。

以上是关于如何在 ViewController 中的 UIWebView 之上处理 SwipeGestures?的主要内容,如果未能解决你的问题,请参考以下文章