iOS导航栏隐藏的情况下设置状态栏颜色

来源:互联网 发布:国际网络交易平台 编辑:程序博客网 时间:2024/05/21 07:53

背景介绍:

有的项目要求在tabbat管理的控制器内,有个界面是H5界面,一般H5界面有自己的导航栏,所以在切换到当前H5界面的时候,需要隐藏native(iOS端)的导航栏。

导航栏隐藏方式:

- (void)viewDidLoad {    [super viewDidLoad];    self.navigationController.delegate = self;}

#pragma mark - UINavigationControllerDelegate// 将要显示控制器- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {    // 判断要显示的控制器是否是自己    BOOL isShowHomePage = [viewController isKindOfClass:[self class]];        [self.navigationController setNavigationBarHidden:isShowHomePage animated:YES];}

这是个很好的设置导航栏隐藏的方式,但是当你兴冲冲的以为完美解决问题的时候,新的问题就来了,你会发现状态栏不见了,导航栏的位置是20高度的白色,很难看。其实状态栏还是有的,只不过状态栏的背景颜色没有了,这个时候需要给状态栏一个背景颜色,而我用的方式就是给状态栏的位置增加一个view。

    //设置状态栏颜色    UIView *statusBarView = [[UIView alloc]   initWithFrame:CGRectMake(0, 0,    self.view.bounds.size.width, 20)];    statusBarView.backgroundColor = [UIColor blackColor];    [self.view addSubview:statusBarView];    //加载webview,frame的H要给20,因为有状态栏。    WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 20, SCREEN_WIDTH, SCREEN_HEIGHT-20)];


这样问题就完美解决了。

iOS更改状态栏、导航栏颜色的几种办法连接


0 0
原创粉丝点击