代码之家  ›  专栏  ›  技术社区  ›  Luke

在运行中以编程方式更改iOS7状态栏颜色?

  •  5
  • Luke  · 技术社区  · 12 年前

    我试图在运行中更改状态栏的颜色,即在加载控制器时不更改。我改变了视图的背景颜色,所以我需要将其从黑色改为白色,反之亦然。

    我知道我可以用 preferredStatusBarStyle 以及plist中的设置,但据我所知,我只会在首次启动视图控制器时设置它。例如,当我按下按钮时,我想改变它。

    我能做到吗?

    2 回复  |  直到 12 年前
        1
  •  24
  •   Balram Tiwari    12 年前
    • 转到应用程序Plist并将其添加为新行&将其设置为NO。

      View controller-based status bar appearance  NO
      

    添加布尔值以确定的状态 UIStatusBar 颜色&添加Toggle方法

    @property(nonatomic) BOOL black;
    
    
    -(void)toggleStatuSBar:(id)sender{
    
        if(black) {
            [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
            black = NO;
    
        }else {
            [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
            black = YES;
        }
    }
    

    这是一个屏幕截图示例

    • 当菜单关闭时,颜色为白色。

      enter image description here

    • 当菜单打开时,颜色为黑色

      enter image description here

    希望这会有所帮助。

        2
  •  2
  •   Daniel    10 年前

    截至Swift 3:

    1. 转到应用程序Plist并将其添加为新行&将其设置为NO。

    View controller-based status bar appearance NO

    2.

    白色: UIApplication.shared.statusBarStyle = .lightContent

    黑色: UIApplication.shared.statusBarStyle = .default