美文网首页
愉快的改变导航栏颜色、状态栏颜色

愉快的改变导航栏颜色、状态栏颜色

作者: innepeace | 来源:发表于2017-11-25 10:28 被阅读0次

    mark

    公司部分界面更换了UI风格,当新旧碰撞,带来的不仅仅是界面的不统一,还有我的手忙脚乱。。。
    干货,干货,先看如何单独设置,再说怎么在页面跳转间搞定它

    设置导航栏

    设置 导航栏的颜色(其实不建议用此方法,会被系统蒙上一层灰色,造成跟设计要求的不一样):
    [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];

    图片做导航栏背景(这样就愉快多了,给它什么图案,就是什么图案):
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bai_beijing"] forBarMetrics:UIBarMetricsDefault];

    设置导航栏 字体颜色
    [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]}];
    看下源文件:

    You may specify the font, text color, and shadow properties for the title in the text attributes dictionary, using the keys found in NSAttributedString.h.

    如上,你可以设置你喜欢的属性,不只是颜色。以上,对于简单的导航栏设置来说,就够用了。

    设置状态栏

    接下来,先看看 状态栏颜色:

    • UIStatusBarStyleDefault :黑色
    • UIStatusBarStyleLightContent :白色

    那么,它的 设置方法:
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
    这里需要注意的是,如果需要用上面的方法改变状态栏,需要在info.plist中,将View controller-based status bar appearance设为NO。View controller-based status bar appearance 的默认值是YES。如果View controller-based status bar appearance 为 YES 则设置方法 [UIApplication sharedApplication].statusBarStyle ([[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyle];)无效

    修改策略

    在要改变的页面- (void)viewWillAppear:(BOOL)animated; 中直接调用修改方法。当返回上一个页面时,如果上一个页面与该页面所显示的状态栏,导航栏不同,那么应该在
    [self dismissViewControllerAnimated:YES completion:nil];

    [self.navigationController popViewControllerAnimated:YES];
    同时调用修改函数。e.g.:

    - (void)reSetStatusBarLightContent {
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
        [[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"abovebar_forall"] forBarMetrics:UIBarMetricsDefault];
        [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
    }
    

    相关文章

      网友评论

          本文标题:愉快的改变导航栏颜色、状态栏颜色

          本文链接:https://www.haomeiwen.com/subject/pbefbxtx.html