我想在我的swift应用程序上获取以下StatusBarStyle:
我的AppDelegate使用UINavigationController,如下所示
self.nav = UINavigationController(rootViewController: controller!)
所以我尝试将UIBarStyle设置为Black,如下所示:
self.nav?.navigationBar.barStyle = UIBarStyle.Black
然而,这导致以下结果:
BTW,在我的Info.plist上,我有以下设置
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleDefault</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
这些设置会在LaunchScreen上产生所需的状态栏样式,但不会在其他屏幕上产生。
我甚至尝试将以下方法添加到UINavigationController
中的所有VCoverride func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.Default
}
但这导致以下状态栏样式:
在iOS 9上有UINavigationController的情况下,获得所需状态栏样式的最佳方法是什么?
此外,如果我删除plist条目并设置
self.nav?.navigationBar.barStyle = UIBarStyle.Black
在AppDelegate中,我得到以下结果:
此外,我删除了所有设置backgroundColor的地方,除了AppDelegate中的以下内容(colorOne是我想要的状态栏上的deepBlue颜色)
self.window?.backgroundColor = colorOne
当我这样做时,状态栏上会出现浅蓝色,这是我在状态栏上所需的深蓝色最接近的颜色,如此处所示
答案 0 :(得分:4)
在appDelegate中使用:
UINavigationBar.appearance().barTintColor = UIColor.redColor()
UINavigationBar.appearance().translucent = false
显然你可以使用你想要的任何UIColor ......
答案 1 :(得分:0)
我希望这对你有帮助..
如果你需要特定的颜色,你如何使用RGB是最好的选择:
UINavigationBar.appearance().barTintColor = UIColor(red: 5.0, green: 8.0, blue: 9.0, alpha:0.5)
如果它不起作用,那么试试这个: var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.whiteColor()
navigationBarAppearace.barTintColor = UIColor(red:15/255.0, green: 167/255.0, blue: 216/255.0, alpha: 1.0)