iOS UIScrollView和控制器返回手势冲突怎么办

  介绍

小编给大家分享一下iOS UIScrollView和控制器返回手势冲突怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

开发中,有部分UI,会将UIScrollView横向铺在底层,上面放tableView或一些视图左右滚动切换,底层的滚动视图会和Nav ViewController原有的返回手势冲突,

 iOS UIScrollView和控制器返回手势冲突怎么办

解决办法,重写UIScrollView的gestureRecognizerShouldBegin,在滚动视图滚动到头的时候,屏蔽滚动视图的手势

class  GesturesConflictScrollView:, UIScrollView  {   override 才能;func  gestureRecognizerShouldBegin (UIGestureRecognizer _ 手势识别器:),→,Bool  {   ,,,回来(:,手势识别器)   ,,}      private 才能;final  func 回(UIGestureRecognizer by 手势识别器:),→,Bool  {   ,,,,   ,,,guard  gestureRecognizer ==, panGestureRecognizer  else  {, return  true }   ,,,//,point.x  & lt;, 0,代表左滑即手指从屏幕右向左移动,反之一样   ,,,let 观点:,CGPoint =, panGestureRecognizer.translation(:,自我)   ,,,let 状态:,UIGestureRecognizer.State =gestureRecognizer.state   ,,,let  locDistance:, CGFloat =UIScreen.main.bounds.size.width   ,,,,   ,,,if  state ==, .began  | |, state ==, .possible  {   ,,,,,let  locationPoint =, gestureRecognizer.location(:,自我)   ,,,,,if  point.x 祝辞,0,,,,locationPoint.x  & lt;, locDistance ,,, contentOffset.x  & lt;=, 0, {   ,,,,,,,return 错误的   ,,,,,}   ,,,,,let  pageCount =, contentSize.width /UIScreen.main.bounds.size.width   ,,,,,let  criticalPoint =, pageCount  & lt;, 2, ?, locDistance :, locDistance  *, (pageCount 安康;1)   ,,,,,if  point.x  & lt;, 0,,,, contentOffset.x ==, criticalPoint  {   ,,,,,,,return 错误的   ,,,,,}   ,,,}   ,,,return 真实的   ,,}   }

以上是“iOS UIScrollView和控制器返回手势冲突怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

iOS UIScrollView和控制器返回手势冲突怎么办