NavigationController & NavigationBar常见用法以及设置

本文介绍如何在iOS应用中使导航栏变为透明并提供几种不同情况下隐藏导航栏的方法,包括滑动、点击、键盘出现及屏幕方向改变时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时需要有导航栏但不想导航栏的高度挡住页面内容,并且不希望有导航栏下面的一根横线那么可以这样处理

- (void)setNavigationBarTransparent:(BOOL)transparent
                               animated:(BOOL)animated {
    [UIView animateWithDuration:animated ? 0.33 : 0 animations:^{
        if (transparent) {
            [self.navigationBar setBackgroundImage:[UIImage new]
                                     forBarMetrics:UIBarMetricsDefault];
            self.navigationBar.shadowImage = [UIImage new];
            self.navigationBar.translucent = YES;
            self.view.backgroundColor = [UIColor clearColor];
            self.navigationBar.backgroundColor = [UIColor clearColor];
        } else {
            [self.navigationBar setBackgroundImage:nil
                                     forBarMetrics:UIBarMetricsDefault];
        }
    }];
}

以下所述的所有方法都是针对于iOS8.0之后对于navigationBar的一些设置,尤其是当使用继承自UIScrollView的控件时,有时候经常要针对于navigationBar做出一些设置,不多说上方法:

1,self.navigationController.hidesBarsOnSwipe = YES ;

当tableView等滑动的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。

2,self.navigationController.hidesBarsOnTap = YES ;

当视图接受点击的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。

3,self.navigationController.hidesBarsWhenKeyboardAppears = YES ;

当键盘出现的的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。

4,self.navigationController.hidesBarsWhenVerticallyCompact = YES ;

当屏幕的方向改变的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。

5,self.navigationController.hidesBottomBarWhenPushed = YES ;

当视图被push(就是nav的push)完之后是否隐藏底层的bar,YES表示隐藏,NO表示不隐藏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值