Панель навигации и просмотр с другим цветом фона - PullRequest
1 голос
/ 06 марта 2019

У меня есть UIView с UINavigationBar.

Я строю этот код для установки цвета фона в 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

Как видите, NavBarдругой цвет, и я не знаю почему.

Ответы [ 4 ]

1 голос
/ 06 марта 2019

попробуйте

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)
0 голосов
/ 06 марта 2019

Возможно, ваша навигационная панель полупрозрачна, попробуйте установить для isTranslucent значение false.

0 голосов
/ 06 марта 2019

Очевидно, это из-за навигационной панели isTranslucent, установите ее программно на false или, если вы используете раскадровку, это можно сделать, сняв флажок с полупрозрачного, как на фотографии.

enter image description here

0 голосов
/ 06 марта 2019

Я думаю, вам нужно установить свойство isTranslucent панели навигации на false.

...