设置状态栏颜色 - 延迟?

时间:2015-12-23 22:51:32

标签: ios swift ios9

当生病时尝试更改iOS中StatusBar的文本颜色时,总会有1-2秒的延迟。所以它从黑色开始,然后在延迟之后变成白色,就像我想要的那样。

所有这些更改都在我的ViewController中,在ViewDidLoad中。

使用自定义视图获取特定颜色:

    let statusBarHeight = CGFloat(20)
    let colorBGView = UIView(frame: CGRectMake(0, -statusBarHeight, self.view.bounds.width, statusBarHeight))
    colorBGView.backgroundColor = UIColor.customDarkerGrey()
    self.navigationController?.navigationBar.addSubview(colorBGView)

将barStyle设置为黑色(使用UINavigationController时获取白色字体​​)

    self.navigationController?.navigationBar.barStyle = UIBarStyle.Black

设置值:

 View controller-based status bar appearance

在plist.info中,"是"

但仍有一个"滞后" - 所以一切都是白色的,但需要2秒钟。有什么想法吗?

我找不到答案问题,因为这只是关于着色,而不是延迟的问题:

preferredStatusBarStyle isn't called

修改

好的,在创建了一个带有2个ViewControllers的新项目并找到了一个导航控制器后,发现了"延迟"当您尝试将ViewController中的Color更改为ViewController时,这是正常的。似乎,功能:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
}

稍稍延迟调用 - 生病时没有任何反应:

self.setNeedsStatusBarAppearanceUpdate()

所以在我的情况下,在NavigationController上全局改变了它,并且(因为它加载了我的应用程序)你不能识别"延迟"。

也许这对其他人有帮助。

1 个答案:

答案 0 :(得分:0)

尝试在方法didFinishLaunchinOptions中为AppDelegate中的状态栏设置颜色。由于状态栏颜色默认设置为其他颜色,然后您在控制器中将其设置为新颜色,因此会产生延迟。

设置值:

View controller-based status bar appearance

在plist.info中为“NO”