различный цвет фона панели навигации между iOS 10 и iOS 11 - PullRequest
0 голосов
/ 17 октября 2018

Я устанавливаю цвет панели навигации на #479F46, в iOS 10 он отображается как #5DA15D, но в iOS 11 он отображается как #4D9D4E

  • что я делаю неправильно?
  • и как это решить?

Код, который я использую в делегате приложения

func setupNavigationController() {
    UINavigationBar.appearance().barTintColor = UIColor.colorWithHexString(hexStr: "479F46")
    UINavigationBar.appearance().tintColor = UIColor.white  
    let textAttributes = [NSAttributedStringKey.foregroundColor:UIColor.white]
    UINavigationBar.appearance().titleTextAttributes = textAttributes
}

РЕДАКТИРОВАТЬ 1

Я использовал isTranslucent = false для моего объекта контроллера навигации,

nvc?.navigationBar.isTranslucent = false

, но этого оказалось недостаточно, я добавил UINavigationBar.appearance().isTranslucent = false в соответствии с предложением llb

, и теперь обе версии ОС показываютцвет как #4D9D4E

Мне нужно, чтобы они оба отображались как #479F46

enter image description here

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Не пытайтесь использовать barTintColor, если вы хотите полностью контролировать цвет панели навигации.Цвет оттенка оттенок .Вы хотите диктовать фактический цвет .

. Есть только один способ сделать это. Нет barTintColor, нет полупрозрачность.Затем задайте на панели навигации фоновое изображение, состоящее из прямоугольника нужного цвета.

Пример:

let sz = CGSize(20,20)
let c = // some UIColor
let r = UIGraphicsImageRenderer(size:sz)
self.navbar.setBackgroundImage( r.image { ctx in
    c.setFill()
    ctx.fill(CGRect(origin:.zero, size:sz))
}, for:.any, barMetrics: .default)
0 голосов
/ 17 октября 2018

Это из-за прозрачности.Установите это в ложь.Кроме того, как предложил @matt, не используйте barTintColor.Установите backgroundColor вместо этого.

UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().backgroundColor = <Your color>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...