UINavigationBar.appearance().tintColor = UIColor.orangeColor() UINavigationBar.appearance().barTintColor = UIColor.orangeColor() UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent,animated: true)
但是,我得到一个白色状态栏,应该填满橙色,而不是按照这个例子:Customize navigation bar appearance with swift
我正在AppDelegate.swift文件中,通过didFinishLaunchingWithOptions方法将其应用到整个应用程序.
我已经将我的info.plist编辑到以下内容:查看基于控制器的状态栏外观=>没有
有谁知道我做错了什么?
编辑:我不知道是否重要,但视图是在一个UITabBarController
编辑2:这实际上发生在所有的视图中,而不仅仅是UITabBarController.
编辑3:感谢@Utsav Parikh
现在,我正在状态栏的顶部添加一个视图,一段时间,应用程序加载状态栏是橙色的,但一旦完成加载,它将被关闭视图并替换为通用的白色状态栏.
为什么会发生这种情况?
let view = UIView(frame: CGRect(x: 0.0,y: 0.0,width: UIScreen.mainScreen().bounds.size.width,height: 20.0)) view.backgroundColor=UIColor.orangeColor() self.window!.rootViewController!.view.addSubview(view)
为Swift 3编辑:
与UITabBarController
let view = UIView(frame: CGRect(x: 0.0,width: UIScreen.main.bounds.size.width,height: 20.0)) view.backgroundColor = .orange self.view.addSubview(view)
没有嵌入式控制器
我意识到有些人来到这里不仅仅是状态栏,而是实际上是导航栏,所以我学习了一些技巧,没有任何嵌入式控制器:
在AppDelegate.swift中添加此方法,并在didFinishLaunchingWithOptions
func customizeAppearance() { UINavigationBar.appearance().barTintColor = UIColor.black UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] UITabBar.appearance().barTintColor = UIColor.black let tintColor = UIColor(red: 255/255.0,green: 255/255.0,blue: 255/255.0,alpha: 1.0) UITabBar.appearance().tintColor = tintColor }
解决方法
与UITabBarController
let view = UIView(frame: CGRect(x: 0.0,height: 20.0)) view.backgroundColor = .orange self.view.addSubview(view)
没有嵌入式控制器
我意识到有些人来到这里不仅仅是状态栏,alpha: 1.0) UITabBar.appearance().tintColor = tintColor }
感谢@Utsav我添加了以下子视图到我的UITabBarController,这似乎现在工作:
let view = UIView(frame: CGRect(x: 0.0,height: 20.0) ) view.backgroundColor = UIColor.orangeColor() self.view.addSubview(view)
在AppDelegate中,UITabBarController看起来不好玩.如果有任何人有更好的方式让我知道,但到目前为止,这是我遇到的解决方案.