美文网首页零碎知识点iOS开发ios开发整理
iOS 修改状态栏字体颜色(亲测,好用)

iOS 修改状态栏字体颜色(亲测,好用)

作者: 杯水救车薪 | 来源:发表于2016-12-20 20:36 被阅读5044次

    有时候我们需要根据不同的背景修改状态栏字体的颜色,我的方法比较复杂,如果有更好用的方法欢迎大家提出来,我会持续更新的。

    方法一

    1.首先是设置info.plist 文件:
      将View controller-based status bar appearance 的值设置为NO。
    2.在AppDelegate.m 的方法中如下设置,默认会显示黑色等于为你的app状态栏设置一个主颜色

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        //设置全局状态栏字体颜色为黑色
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    //设置全局状态栏字体颜色为白色
      // [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
        
         return YES;
    }
    

    3.在需要设置为白色的地方添加如下代码:

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
    

    4.在需要变回黑色的地方添加如下代码:

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    
    

    例如你想将一个控制器的状态栏的字体颜色设为白色代码如下:

    #pragma mark - 设置状态栏颜色
    -(void)viewWillAppear:(BOOL)animated{
        [super viewWillAppear:animated];
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
     
        
    }
    
    -(void)viewWillDisappear:(BOOL)animated
    
    {
        
        [super viewWillDisappear:animated];
        
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
      
    
    }
    
    

    这里要注意,在UITabBarController中如果选项卡每个页面都加载出来,那么在你切换页面时,会先调用下一个页面的viewWillAppear方法,再调用本页面的viewWillDisappear方法,会影响状态栏的字体颜色改变.

    相关文章

      网友评论

      • 苍山白雪11:亲测好用,多谢大神!!!
      • 阿唯不知道:亲测好用棒棒哒
      • f7139db11dcd:能不能做个demo
        愚人船ios:@凋了丶这碎念 兄dei 解决了吗? 我把修改颜色放到didappeare 里面 在tabbar切换的时候没问题了 但是pop 的时候效果不好
        K哥的贼船:最后面的那个问题有人知道怎么解决吗
        杯水救车薪:@HZW_sister 有时间做一个,你可以创建个项目用这个方法试一下,应该没问题,不过模拟器上有可能有问题,真机没事

      本文标题:iOS 修改状态栏字体颜色(亲测,好用)

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