介绍
小编给大家分享一下iOS UIScrollView和控制器返回手势冲突怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
开发中,有部分UI,会将UIScrollView横向铺在底层,上面放tableView或一些视图左右滚动切换,底层的滚动视图会和Nav ViewController原有的返回手势冲突,
解决办法,重写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和控制器返回手势冲突怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!