zoukankan      html  css  js  c++  java
  • 修改状态栏的颜色 iOS

    需求:全局黑色状态栏,某个页面白色状态栏

    有两种实现方式:

    第一种:全局设置状态栏颜色

    1.在 info.plist 添加View controller-based status bar appearance 设置为NO

     
     

    2 在AppDelegate.m 的方法中如下设置,默认会显示黑色

    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

        //设置全局状态栏颜色为黑色

        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

        //设置全局状态栏颜色为白色

        // [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

        return YES;

    }

    3.在其他页面设置状态栏的颜色

    -(void)viewWillAppear:(BOOL)animated{

        [super viewWillAppear:animated];

        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

    }

     

    -(void)viewWillDisappear:(BOOL)animated{

        [super viewWillDisappear:animated];

        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

    }

    第二种:局部设置状态栏颜色

    1.在 info.plist 添加View controller-based status bar appearance 设置为YES

    2.控制器基类里

    .h里

    // 设置当前控制器的状态栏style

    @property(assign, nonatomic) BOOL mWhiteStausBar;

    .m里

    - (void)setMWhiteStausBar:(BOOL)mWhiteStausBar

    {

        if (_mWhiteStausBar == mWhiteStausBar) {

            return;

        }

        _mWhiteStausBar = mWhiteStausBar;

        

        [self setNeedsStatusBarAppearanceUpdate];

    }

     

    - (UIStatusBarStyle)preferredStatusBarStyle{

        return self.mWhiteStausBar ? UIStatusBarStyleLightContent:UIStatusBarStyleDefault;

    }

    某个页面这样调用

    self.mWhiteStausBar = YES;

  • 相关阅读:
    模块
    python运算符与表达式
    subShell与代码块
    参数展开与特殊字符
    变量和参数
    shelll Test
    Cypher查询语言--Neo4j 入门 (一)
    那些争议最大的编程观点
    大型网站架构不得不考虑的10个问题
    大型网站架构演变
  • 原文地址:https://www.cnblogs.com/huangzs/p/13577629.html
Copyright © 2011-2022 走看看