iphone - UIWebView 内的滑动手势识别

标签 iphone uiwebview uiswipegesturerecognizer

我已经阅读了很多关于此问题的问题,但似乎没有一个能够实现我正在寻找的东西...所以可以说我在 UIViewController< 内部有一个任意 UIWebView/UIViewController 有一个可以正常工作的 SwipeGestureRecognizer。它甚至可以在 UIWebView 中工作——只要没有滚动条。 (在加载页面之前,或者即使加载可以适当适合我的 UIWebView 大小的页面)。但是,如果我加载需要向左或向右水平滚动的网页,则在 View 的 UIWebView 部分内,我无法识别任何滑动手势。每次单击/拖动/滑动只会触发滚动操作。有没有办法区分“滑动”和仅用手指滚动(不是抬起手指而是拖动滚动)。

最佳答案

是的,您可以告诉 UIWebView 的 UIScrollView 它的 UIPanGestureRecognizer 仅应在您自己的 UISwipeGestureRecognizer 失败时触发。

这就是你的做法:

UISwipeGestureRecognizer *rightSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
UISwipeGestureRecognizer *leftSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
rightSwipeGesture.direction = UISwipeGestureRecognizerDirectionRight;
leftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:rightSwipeGesture];
[self.view addGestureRecognizer:leftSwipeGesture];

[_webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:rightSwipeGesture];
[_webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:leftSwipeGesture];

这应该对你有用。

关于iphone - UIWebView 内的滑动手势识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11869334/

相关文章:

ios - ios 12.2无法播放uiwebview视频

iOS:如何将滑动删除按钮添加到 viewForHeaderInSection 中的自定义 View

android - 客户经理集成 - Android 与 iOS

ios - iPhone手机来电检测软件

iphone - UITabBarController 与 UINavigationController "more"选项卡问题

ios - 如何在不初始化 UIWebView 或 WKWebView 的情况下获取 WKWebView 的 UserAgent?

iphone - 是否可以让工厂类负责创建对象集合而不是一次创建一个对象

ios - 如何删除UIWebview中的缓存?

iphone - 在 UICollectionView 中检测滑动

ios - 如何在 iPhone 上实现与在主屏幕之间导航相同的平移/滑动效果组合?