2016-07-25 12 views
3

Это мой дизайн в Эскиз:Цветовая разница между UINavigationBar Оттенок цвета и остальной части приложения в IOS

enter image description here

Эскиз говорит, что синий цвет 70164239.

Так у меня есть следующий код для моей вкладки:

UINavigationBar.appearance().barTintColor = UIColor(red: 70.0/255.0, green: 164.0/255.0, blue: 239.0/255.0, alpha: 1.0) 
UINavigationBar.appearance().tintColor = UIColor.clearColor() 
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()] 

А следующий за вид снизу (в действии):

self.two_buttons_view.backgroundColor = UIColor(red: 70.0/255.0, green: 164.0/255.0, blue: 239.0/255.0, alpha: 1.0) 

Но посмотрите, что происходит, панель навигации цвет всегда немного светлее, чем цвет представления. С этим синим цветом есть только небольшая разница, но если я пойду с более темным синим цветом, он станет намного заметнее. Оказывается, что цвета панели навигации никогда не бывают столь богаты, как и остальные страниц взгляды:

enter image description here

ответ

14

tintColor является оттенком цвета. Он сочетается с прозрачностью (это слово?) Бара, а также тем, что стоит за планкой, чтобы дать какой-то другой цвет.

Если вы хотите иметь полный контроль над фактического цвета навигационной панели, установите его translucent в false, а затем дать ему фоновое изображение, состоящее из прямоугольника нужного цвета - и не оттенка цвета.

+2

Спасибо, @matt. UINavigationBar.appearance(). Translucent = false - это все, что было необходимо в моем случае, теперь он выглядит превосходно даже тогда, когда он просто устанавливает цвет сам по цвету оттенков –

+2

В Swift 3 это изменилось на: UINavigationBar.appearance(). IsTranslucent = false –

+0

Вам не нужно указывать фоновое изображение. Вы можете просто установить его backgroundColor. – Harris