如何替换 UIWebView 中的 SwipeGestureRecognizer 操作
Posted
技术标签:
【中文标题】如何替换 UIWebView 中的 SwipeGestureRecognizer 操作【英文标题】:How to replace SwipeGestureRecognizer action in a UIWebView 【发布时间】:2012-05-16 11:55:06 【问题描述】:我正在尝试在一组 5 个 UIWebView 中呈现本地 html5 内容。 这个想法是用户会滑动到 4 个方向,所以我得到了 5 个 UIWebViews 并禁用了弹跳:
leftWebView.scrollView.bounces = NO;
middleWebView.scrollView.bounces = NO;
rightWebView.scrollView.bounces = NO;
upWebView.scrollView.bounces = NO;
downWebView.scrollView.bounces = NO;
我们假设 webviews 中不可能滚动,因为显示的 html 页面比 iPad 屏幕小。
加载这些 web 视图后,只需移动其中心即可平滑过渡。
那么有没有办法改变 UIWebView 中手势识别器执行的滑动操作?
我尝试将 4 个 SwipeGesturesRecognizers(每个方向一个)直接放在 webViews 上,但由于某种原因,当我交换引用时,手势识别器失去了对 WebViews 的跟踪:
UIWebView *tmp = leftWebView;
leftWebView = middleWebView;
middleWebView = rightWebView;
rightWebView = tmp;
我尝试在窗口顶部的 UIView 上使用 4 个 SwipeGesturesRecognizers(每个方向一个),但现在点击被此视图阻止,因此用户无法再与可点击元素进行交互。
【问题讨论】:
【参考方案1】:您可以将自定义 UISwipeGestureRecognizer
添加到您的 webView .. 并像这样禁用 webView 中的滚动
UIScrollView *scroll = [[self.webView subviews] lastObject];
if([scroll isKindOfClass:[UIScrollView class]])
scroll = (UIScrollView*)scroll;
[scroll setScrollEnabled:NO];
【讨论】:
谢谢,这正是我需要添加以启用我自己的滑动手势识别器以上是关于如何替换 UIWebView 中的 SwipeGestureRecognizer 操作的主要内容,如果未能解决你的问题,请参考以下文章