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

我希望我的应用程序的状态栏与我的导航栏具有完全相同的颜色。 我发现改变状态栏颜色的方法只是创建状态栏大小的视图并更改背景颜色。

然而,即使我使用导航栏中的颜色选择器来设置视图的颜色,我得到2种完全不同的颜色,如下图所示。 在此处输入图像描述

我尝试过使用颜色选择器,改变不透明度等,但是我永远无法打出正确的颜色。 关于如何为状态栏获得完全相同的颜色的任何想法?

当您设置self.navigationController.navigationBar.barTintColor的值时, UIStatusBar的颜色会自动设置为与UINavigationBar的颜色相匹配。 您需要单独设置它们吗?

您可以执行以下操作:

  1. 创建一个仅包含所需颜色的UIImage,大小为64×1。 您可以在代码中渲染该图像。
  2. 将图像设置为navigationBar的背景图像。 类似于:navigationController.navigationBar.setBackgroundImage(image,for:.default)