iOS - 修改状态栏和导航栏注意事项

当修改导航栏、状态栏的时候,一定要慎重,因为这个可能会影响所有页面的内容。

基本的修改有以下两个步骤:

1、在 viewWillAppear修改,记录下修改前的状态

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

2、在viewWillDisappear恢复 ,确保不影响其他界面,记住这里的恢复是进入这个页面之前的状态

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

导航栏

//隐藏导航栏
[self.navigationController setNavigationBarHidden:YES animated:YES];

//获取导航栏的状态
self.navigationController.navigationBarHidden 

//防止视图延伸到导航栏(状态栏)下面去
self.edgesForExtendedLayout = UIRectEdgeNone;

状态栏

//修改单个页面的状态栏

- (void)viewDidLoad {
    [super viewDidLoad];
    [self prefersStatusBarHidden];
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}

- (BOOL)prefersStatusBarHidden
{
    return YES;//隐藏为YES,显示为NO
}

//修改所有页面的状态栏,不需要写代码
//在info.plist 中添加:
//Status bar is initially hidden   (value:YES)
//View controller-based status bar appearance   (value:NO)
Scrollview 偏移的问题:

解决该问题的最简单粗暴的方法,在程序中添加下面的代码,然后手动控制ScrollView类的frame。

if (@available(iOS 11.0, *)) {
    self.tv.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
    self.automaticallyAdjustsScrollViewInsets = NO;
}

参考链接:
1、滑动返回中导航栏的问题
2、iOS中设置导航栏标题的字体颜色和大小
3、UIViewController的self.view布局位置问题
4、iOS11适配:关于UITableView的偏移问题记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值