iOS自定义状态栏背景颜色不显示

前端之家收集整理的这篇文章主要介绍了iOS自定义状态栏背景颜色不显示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用以下内容将状态栏背景颜色填充为橙色
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
}

解决方法

为Swift 3编辑:

与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看起来不好玩.如果有任何人有更好的方式让我知道,但到目前为止,这是我遇到的解决方案.

原文链接:https://www.f2er.com/iOS/337140.html

猜你在找的iOS相关文章