回顾
在 iOS - 实现UINavigation全屏滑动返回(一) 中我们实现了滑动返回的功能,但不是全屏滑动返回,得在左侧边缘轻扫才能滑动返回~
UINavigationController自带的只能在边缘轻扫才能滑动返回,这用户体验是不好的,接下来实现全屏滑动返回!
思路
既然自带的滑动返回只能是在边缘,那我们能不能修改使它触摸范围变大甚至全屏呢?先来看下系统手势有没有提供属性或方法供我们使用
NSLog(@"%@", self.interactivePopGestureRecognizer);
打印信息:
/*
<UIScreenEdgePanGestureRecognizer: 0x7fd542611e20; state = Possible; delaysTouchesBegan = YES; view = <UILayoutContainerView 0x7fd542706300>; target= <(action=handleNavigationTransition:, target=<_UINavigationInteractiveTransition 0x7fd542611ce0>)>>
*/
原来系统手势的类型为 UIScreenEdgePanGestureRecognizer ,转到定义,发现有一个属性
UIRectEdge edges
是个结构体
typedef NS_OPTIONS(NSUInteger, UIRectEdge) {
UIRectEdgeNone = 0,
UIRectEdgeTop = 1 << 0,
UIRectEdgeLeft = 1 << 1,
UIRectEdgeBottom = 1 << 2,
UIRectEdgeRight = 1 << 3,
UIRectEdgeAll = UIRectEdgeTop | UIRectEdgeLef