将状态栏和导航栏设置为相同的颜色

时间:2019-03-14 01:38:32

标签: swift statusbar navigationbar

enter image description here

您好,我想将状态栏设置为与UINavigationBar完全相同的颜色。我在下面显示的代码中使用了完全相同的颜色,但是从图像中可以看到,它们的颜色不是相同的蓝色。是否有任何方法可以使它们相同。我试图用Google搜索,但找不到任何解决方案。

UIApplication.shared.statusBarView?.backgroundColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 1.0)

UINavigationBar.appearance().barTintColor = UIColor(red: 13/225, green: 71/255, blue:161/255, alpha: 1.0)

5 个答案:

答案 0 :(得分:1)

您可以将以下功能添加到array_diff(array_merge($a, $b), array_intersect($a, $b)) 文件中

AppDelegate.swift

并在func changeStatusBarColor(_ color: UIColor) { guard let statusBar = (UIApplication.shared.value(forKey: "statusBarWindow") as AnyObject).value(forKey: "statusBar") as? UIView else { return } statusBar.backgroundColor = color } 方法中使用,如下所示

didFinishLaunchingWithOptions

已编辑

您可以在self.changeStatusBarColor(UIColor.black) //pass the color you want to set 文件中使用共享实例

AppDelegate.swift

之后,只要您设置导航背景色,就将其传递给static let shared = AppDelegate() 方法

使用以下方法将其设置为导航背景色

changeStatusBarColor

答案 1 :(得分:1)

尝试将半透明更改为false

navigationBar.isTranslucent = false

答案 2 :(得分:0)

如果要使其与导航栏匹配,则不必设置状态栏颜色。注释掉以下行可以在我的环境中解决此问题。

Screenshot of the results

obj=1

或者,您可以执行以下操作:

class Obj (models.Model):
    name = models.CharField(max_length=40)


class CharAttribute (models.Model):
    name = models.CharField(max_length=40)
    obj = models.ForeignKey(Obj, on_delete=models.CASCADE)


class IntAttribute (models.Model):
    name = models.CharField(max_length=40)
    obj = models.ForeignKey(Obj, on_delete=models.CASCADE)

答案 3 :(得分:0)

 self.navigationController?.navigationBar.tintColor = UIColor.blue 
 self.navigationController?.navigationBar.barTintColor = UIColor.blue

我在xcode 10.1和swift 4.2上运行。希望这会有所帮助。

答案 4 :(得分:0)

self.navigationController.navigationBar.barTintColor = UIColor.yourColor