全屏加返回手势,支持 iOS 7.0 及以上系统
pod 'YUFullscreenGesture'
navigationController.yu_fullscreenPopGestureRecognizer.enabled = NO;
viewController.yu_interactivePopDisabled = YES;
现在不需要使用 -setNavigationBarHidden:animated:
来隐藏导航栏了,以下方法是替代方案:
- (void)viewDidLoad {
[super viewDidLoad];
self.yu_prefersNavigationBarHidden = NO;
}
重写此方法,当 scrollView 的 x 偏移量不大于 0 时,手势将生效。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (self.contentOffset.x <= 0) {
if ([otherGestureRecognizer.delegate isKindOfClass:NSClassFromString(@"_YUFullscreenPopGestureRecognizerDelegate")]) {
return YES;
}
}
return NO;
}
在第一个例子中,当 Push a VC with bar 继承了框架时,就会拥有这项基本功能。
在第二个例子中,隐藏了导航栏,但仍然可以正常使用。
scrollView 将会响应手势,因此需要重写:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
在 scrollView 的 x 偏移量不大于零时,使用我们框架的 pop 手势。
这种情况很常见,但与例子 3 没有本质区别。