具有不同背景颜色的 NavigationBar 和 View

NavigationBar and View with different background color

我有一个带有 UINavigationBar 的 UIView。

我正在构建此代码以在 View 和 NavigationBar 中设置背景颜色。

所以这是代码:

    override func viewDidLoad(){
       super.viewDidLoad()
       self.navigationController?.navigationBar.barTintColor = getColor(red: 41, green: 151, blue: 255)
       self.view.backgroundColor = getColor(red: 41, green: 151, blue: 255)      
    }

func getColor(red: Int, green: Int, blue: Int) ->
   UIColor{
   return UIColor(red: CGFloat(Float(red) / 255.0),
      green CGFloat(Float(red) / 255.0),
      blue: CGFloat(Float(red) / 255.0),
      alpha: CGFloat(1.0))
}

你可以看到颜色是一样的,但是输出视图是这样的:

如您所见,导航栏有不同的颜色,我不知道为什么。

我认为您需要将导航栏的 isTranslucent 属性 设置为 false

可能是你的导航条是半透明的,设置isTranslucent为false试试

显然,这是因为导航栏 isTranslucent,请以编程方式将其设置为 false,或者如果您使用的是情节提要,则可以像所附照片那样从 Translucent 中删除勾选来完成。

试试这个

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.view.backgroundColor = UIColor.clear

而不是

self.navigationController?.navigationBar.barTintColor = getColor(red: 41, green: 151, blue: 255)