状态栏颜色需要花费大量时间来改变ios(仅适用于第一次)

时间:2016-07-08 11:22:00

标签: ios objective-c statusbar

我有以下代码来更改状态栏的颜色,它运行正常。

statusBarTintView = [[UIView alloc] initWithFrame:[[UIApplication sharedApplication] statusBarFrame]];
statusBarTintView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
statusBarTintView.backgroundColor = [[Color sharedInstance] navigationBarColor];
[self.window addSubview:statusBarTintView];
[statusBarTintView release];

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

但它需要花费很多时间才能改变(仅限第一次)。 我究竟做错了什么? 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

  1. 在.plist文件中将UIViewControllerBasedStatusBarAppearance设置为YES
  2. viewDidLoad执行[self setNeedsStatusBarAppearanceUpdate];
  3. 添加以下方法:

    - (UIStatusBarStyle) preferredStatusBarStyle
    { 
         return UIStatusBarStyleLightContent; 
    }
    
  4. 请参阅此答案以了解更多详情。

    How to change Status Bar text color in iOS 7

    Change status bar text color to light in iOS 9 with Objective C