NavigationBar和具有不同背景颜色的视图

时间:2019-03-06 16:37:07

标签: ios xcode swift3 uinavigationbar

我有一个带有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))
}

您可以看到颜色是相同的,但是输出视图如下:

enter image description here

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

4 个答案:

答案 0 :(得分:1)

尝试

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)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这可能是因为您的导航栏是半透明的,请尝试将isTranslucent设置为false。

答案 3 :(得分:0)

显然,这是因为导航条isTranslucent,将其编程设置为false,或者如果您使用的是情节提要,则可以通过删除半透明的支票(如随附的照片)来完成。

enter image description here