首页 文章

如何在iOS 7中以编程方式将UIViewControllerBasedStatusBarAppearance更改为YES / NO?

提问于
浏览
4

我的应用程序背景较暗,但在iOS 7中,状态栏变得透明 . 所以我看不到任何东西,角落里只有绿色电池指示灯 . 如何将状态栏文本颜色更改为绿色或橙色,就像在主屏幕上一样?

我知道

  • 在plist中将 UIViewControllerBasedStatusBarAppearance 设置为 YES

  • viewDidLoad[self setNeedsStatusBarAppearanceUpdate];

  • 添加以下方法:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}

如何以编程方式更改 UIViewControllerBasedStatusBarAppearance

提前致谢...

2 回答

  • 9

    在Info.plist中,将“查看基于控制器的状态栏外观”设置为NO .

    然后,在didfinishlaunchingwithoptions方法的appdelegate.m类中添加它 .

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
    

    这适用于ios 7 .

  • 8

    正如其他人所说,在应用程序的info.plist中添加“查看基于控制器的状态栏外观”并将其设置为Type:Boolean和Value:NO

    供您参考:

    screenshot

    在iOS 9中

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
    

    方法已弃用 .

    所以你可以使用这个:

    application.statusBarStyle = UIStatusBarStyleLightContent;
    

    在方法中添加这行代码

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

    它存在于appDelegate.m文件中 . 这将在整个应用程序中更改状态栏文本颜色 .

    因此,如果您有任何背景可能是暗或亮的屏幕,那么在该屏幕中您可以通过以下方式使用状态栏颜色:

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    

    希望这可以帮助 .

相关问题