如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何呈现嵌入在 UITabBarController 和 UINavigationBarController 中的 ViewController

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

如何在 Cocoa Touch 中的任意两个 ViewController 之间进行转换?

如何在 Swift 中的 AppDelegate 中抓取 Viewcontroller

如何将 ViewController.swift 连接到 Storyboard 中的 ViewController?

如何从 XIB 文件访问 ViewController 中的 IBoutlet