繁体   English   中英

使用双指轻扫手势和UIPageViewController避免冲突

[英]Avoiding conflicts with two-finger swipe gesture and UIPageViewController

我有一个UIViewController ,它包含一个使用滚动样式的UIPageViewController 用户可以照常浏览页面。 现在我想将两个手指UISwipeGestureRecognizer添加到包含页面视图控制器的外部视图控制器。 我希望用户能够用一根手指轻扫切换页面,然后用两根手指轻扫以触发另一个动作。 但默认情况下,当您用两根手指滑动时,iOS会滚动页面并忽略两个手指的手势。 为了解决这个问题,我设置了pageViewController.scrollView.panGestureRecognizer来要求两个手指滑动手势失败。 然后它会根据需要识别两者,但问题是它很难用一根手指快速浏览页面,因为它正在等待两根手指滑动失败。 它忽略了很多滑动输入,所以你需要在用一根手指滑动切换页面之前触摸并保持片刻。 我也尝试将平移手势的minimumNumberOfTouchesmaximumNumberOfTouches1但它的行为相同。

我能做些什么来使这项工作做得好,只用两根手指滑动时识别两根手指滑动,但不能延迟识别一根手指轻扫以切换页面?

首先,你需要确保UISwipeGestureRecognizer与同时识别panGestureRecognizer使用UIGestureRecognizerDelegate

func gestureRecognizer(UIGestureRecognizer, shouldRecognizeSimultaneouslyWith: UIGestureRecognizer) {
   return true
}

然后,当调用双指UISwipeGestureRecognizer的操作方法时,手动重置panGestureRecognizer

pageViewController.scrollView.panGestureRecognizer.isEnabled = false
pageViewController.scrollView.panGestureRecognizer.isEnabled = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM