CJSidePopGesture 2.0.2

CJSidePopGesture 2.0.2

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新发布2018年5月

Cheng Jie维护。



  • 作者
  • J.Cheng

CJSidePopGesture

iOS 侧滑返回修改

安装

使用 CocoaPods

pod 'CJSidePopGesture', '~> 2.0.0'
or
pod 'CJSidePopGesture'

概览

snapshot

该扩展来自 @forkingdog 团队和其他一些人的源代码,参考文章地址:(http://www.jianshu.com/p/f83acf1d337b)

用法

AOP,只需添加2个文件,无需任何设置,所有导航控制器都将能够自动使用全屏弹出手势。

要禁用导航控制器的此弹出手势

navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO;

要禁用视图控制器的此弹出手势

viewController.fd_interactivePopDisabled = YES;

需要至少 iOS 7.0

基于视图控制器导航栏外观

它在使用全屏手势推或弹出视图控制器时正确处理导航栏过渡

  • 有栏 -> 无栏
  • 无栏 -> 有栏
  • 无栏 -> 无栏

此优化默认启用,从此以后您不需要调用 UINavigationController-setNavigationBarHidden:animated: 方法,而是使用视图控制器的特定 API 来隐藏其栏

- (void)viewDidLoad {
[super viewDidLoad];
self.fd_prefersNavigationBarHidden = NO;
}

此属性默认为 NO

带滚动视图的视图控制器

如果您想在带有 scrollView 或是其子类的 ViewController 中使用全屏弹出手势,您应该自定义 scrollView 或是其子类,并重载 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 方法。如下所示:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (self.contentOffset.x <= 0) {
if ([otherGestureRecognizer.delegate isKindOfClass:NSClassFromString(@"_FDFullscreenPopGestureRecognizerDelegate")]) {
return YES;
}
}
return NO;
}

...

- 1.0.0 首次支持侧滑返回的修改,这个版本支持到 iOS7.0 以及以上。

许可协议

MIT