当生病时尝试更改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上全局改变了它,并且(因为它加载了我的应用程序)你不能识别"延迟"。
也许这对其他人有帮助。
答案 0 :(得分:0)
尝试在方法didFinishLaunchinOptions中为AppDelegate中的状态栏设置颜色。由于状态栏颜色默认设置为其他颜色,然后您在控制器中将其设置为新颜色,因此会产生延迟。
还
设置值:
View controller-based status bar appearance
在plist.info中为“NO”