[英]Avoiding conflicts with two-finger swipe gesture and UIPageViewController
我有一个UIViewController
,它包含一个使用滚动样式的UIPageViewController
。 用户可以照常浏览页面。 现在我想将两个手指UISwipeGestureRecognizer
添加到包含页面视图控制器的外部视图控制器。 我希望用户能够用一根手指轻扫切换页面,然后用两根手指轻扫以触发另一个动作。 但默认情况下,当您用两根手指滑动时,iOS会滚动页面并忽略两个手指的手势。 为了解决这个问题,我设置了pageViewController.scrollView.panGestureRecognizer
来要求两个手指滑动手势失败。 然后它会根据需要识别两者,但问题是它很难用一根手指快速浏览页面,因为它正在等待两根手指滑动失败。 它忽略了很多滑动输入,所以你需要在用一根手指滑动切换页面之前触摸并保持片刻。 我也尝试将平移手势的minimumNumberOfTouches
和maximumNumberOfTouches
为1
但它的行为相同。
我能做些什么来使这项工作做得好,只用两根手指滑动时识别两根手指滑动,但不能延迟识别一根手指轻扫以切换页面?
首先,你需要确保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.