IOS 常用小知识 1
2019-01-11 本文已影响0人
_码奴
导航栏常用隐藏方式
// 会屏蔽右划返回的功能
self.navigationController.navigationBarHidden = YES;
// 不会屏蔽右划返回的功能
self.navigationController.navigationBar.hidden = YES;
系统导航栏时常会限制很对视图的处理,所以经常会用到自定义导航栏,如果自定义导航栏的时候还需要保持 “右划返回的功能” 的功能那么就使用第二种方式
self.navigationController.navigationBar.hidden = YES;
我们有时需要划动返回,也有时不需要划动手势,下面时三种禁止划动返回的方式:
第一种:(推荐使用)
在viewController种使用下面代码禁止划动返回手势,
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
// 如果设置为YES,那么是允许划动返回手势,默认是YES
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
第二种:(不推荐),因为如果还有其他手势冲突需要代理解决,为了不影响其他手势,处理较为麻烦,所以在多个自定义手势存在的情况下不推荐使用
- (void)viewDidAppear:(BOOL)animated {
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
//YES:允许右滑返回 NO:禁止右滑返回
return NO;
}
第三种:如果以上两种方法尝试过没有用的情况下推荐第三种方法来解决,此方法不够官方。如果第一种可以的话,不推荐使用这种方式
- (void)viewWillAppear:(BOOL)animated {
//禁止返回
id traget = self.navigationController.interactivePopGestureRecognizer.delegate;
UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:traget action:nil];
[self.view addGestureRecognizer:pan];
}
手势划动问题参考链接:
作者:等不来的期待
链接:https://www.jianshu.com/p/517bb7b6604a
來源:简书