iOS 导航栏无缝圆滑的隐藏 Navigationbar实例代码
家电修理 2023-07-16 19:16www.caominkang.com电器维修
1.VieController
.m
- (void)vieDidLoad {
[super vieDidLoad];
self.title = @"隐藏导航栏";
UIButton button = [UIButton buttonWithType:UIButtonTypeCustom];
button.backgroundColor = [UIColor lightGrayColor];
button.frame = CGRectMake(10, 100, 60, 30);
[button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
[self.vie addSubvie:button];
self.navigationController.delegate = self;
}
- (void)buttonClick{
///跳转到KKVieController
[self performSegueWithIdentifier:@"pusht" sender:nil];
}
头部代理
@interface VieController ()
代理方法
- (void)navigationController:(UINavigationController )navigationController illShoVieController:(UIVieController )vieController animated:(BOOL)animated {
[self.navigationController setNavigationBarHidden: [self hiddenBarVc: vieController] animated: animated];
}
- (BOOL)hiddenBarVc:(UIVieController )vieController {
BOOL needHideNaivgaionBar = NO;
if ([vieController isKindOfClass: [KKVieController class]]) {
needHideNaivgaionBar = YES;
}
return needHideNaivgaionBar;
}
2.KKVieController(目标VieController)
新建一个KKVieController
.h
@property (nonatomic,strong) id popDelegate;
.m
- (void)vieDidLoad {
[super vieDidLoad];
self.title = @"第二个页面";
[self popSet];
}
- (void)popSet{
_popDelegate = self.navigationController.interactivePopGestureRecognizer.delegate;
SEL action = NSSelectorFromString(@"handleNavigationTransition:");
UIPanGestureRecognizer popPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self.popDelegate action:action];
popPanGesture.maximumNumberOfTouches = 1;
popPanGesture.delegate = self;
[self.vie addGestureRecognizer: popPanGesture];
}
头部代理
@interface KKVieController ()
手势代理方法
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer )gestureRecognizer{
///【下面两个方法写一个】
///全屏拖动
CGPoint tragPoint = [gestureRecognizer translationInVie:gestureRecognizer.vie];
if (tragPoint.x <= 0){
return NO;
}
else{
if (self.navigationController.vieControllers.count <= 1){
return NO;
}
else{
return YES;
}
}
// ///局部允许拖动
// CGPoint tragPoint = [gestureRecognizer locationInVie:gestureRecognizer.vie];
// NSLog(@"x=%f;y=%f",tragPoint.x,tragPoint.y);
// if (tragPoint.x > 60){///拖动的范围
// return NO;
// }
// else{
// if (self.navigationController.vieControllers.count <= 1) {
// return NO;
// }
// else{
// return YES;
// }
// }
}
效果图
以上所述是我给大家介绍的iOS 导航栏无缝圆滑的隐藏 Navigationbar,如果大家有任何疑问请给我留言,我会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!
空调维修
- 我的世界电脑版运行身份怎么弄出来(我的世界
- 空调抽湿是什么意思,设置抽湿的温度有什么意
- 方太燃气灶有一个打不着火 怎么修复与排查方法
- 夏季免费清洗汽车空调的宣传口号
- 清洗完空调后出现漏水现象
- iphone6能玩什么游戏(iphone6游戏)
- 如何设置电脑密码锁屏(如何设置电脑密码锁屏
- win10删除开机密码提示不符合密码策略要求
- 电脑w7显示不是正版(w7不是正版怎么解决)
- 万家乐z8热水器显示e7解决 怎么修复与排查方法
- 1匹空调多少瓦数(1匹空调多少瓦)
- 安卓手机连接电脑用什么软件好(关于安卓手机
- 电脑网页看视频卡是什么原因(爱拍看视频卡)
- 华帝燃气灶点火器一直响然后熄火怎么办:问题
- 电脑壁纸怎么换(关于电脑壁纸怎么换的介绍)
- 冬天空调的出风口应该朝什么方向(冬天空调风