如何在 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