如何在 UIWebview 上添加 UISwipeGestureRecognizer

Posted

技术标签:

【中文标题】如何在 UIWebview 上添加 UISwipeGestureRecognizer【英文标题】:How to add UISwipeGestureRecognizer on UIWebview 【发布时间】:2013-12-19 14:04:10 【问题描述】:

我正在使用这个

UIWebview *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0,0,320,self.view.frame.size.height)];

webView.delegate=self;
[webView.scrollView setScrollEnabled:YES];
webView.backgroundColor=[UIColor grayColor];
[view1 addSubview:webView];

UISwipeGestureRecognizer * Swiperight=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swiperight11:)];
Swiperight.delegate=self;
[Swiperight setNumberOfTouchesRequired:1];
Swiperight.direction=UISwipeGestureRecognizerDirectionRight;
[webView addGestureRecognizer:Swiperight];

这个向右滑动不起作用,但是当我们使用这个时

[webView addGestureRecognizer:Swiperight]; insted of
 [view1 addGestureRecognizer:Swiperight];

然后它工作正常......所以我想问 UISwipeGestureRecognizer 不能在 Webview 上工作吗? 帮帮我

【问题讨论】:

【参考方案1】:

您的问题类似于this one。 UIWebView 的嵌入式滚动视图上的手势识别器首先捕获手势。将手势识别器添加到 webView 后添加以下内容。

[webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:Swiperight];

请注意,这会阻止用户向左平移。如果您不想这样做,请使用 UIScrollViewDelegate 方法来检测用户何时滑动或平移。

【讨论】:

以上是关于如何在 UIWebview 上添加 UISwipeGestureRecognizer的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIWebView 视频播放器中添加 OverLay View?

如何在uiwebview中实现触摸事件?

如何在 UIWebView 上的 Long Tap 手势上创建 Tap 事件?

如何自定义 UIWebView 的 MoviePlayer

如何将项目添加到 UIWebView 的 UIScrollView

在 iOS Swift 3 中以编程方式添加 Web 视图时如何在 UIWebView 中获取响应状态代码?