2014-10-27 4 views
15

Я пытаюсь изменить цвет панели вкладок в контроллере вида в XCode с помощью быстрого доступа. У меня есть шестнадцатеричный код, который соответствует значению RGB, и я пытаюсь установить его в этом коде. (Что не работает)Изменение цвета панели вкладок (Swift)

let color = UIColor(red: 41, green: 40, blue: 39, alpha: 1.0) 
UITabBar.appearance().barTintColor = color 

Однако этот код:

UITabBar.appearance().barTintColor = UIColor.whiteColor() 

Может кто-нибудь объяснить, почему это не работает, и что я могу сделать, чтобы исправить это?

ответ

5

Это не работает, потому что все ваши компоненты RGB больше 1, что является максимальным доступным значением для каждого канала. Вероятно, вы думаете о цветовых каналах как о байтах, но это не будет масштабироваться для изменения битовых глубин цвета. (Например, было распространено в RGB565, а не RGBA8888 в ранних версиях iOS. И вы, вероятно, можете ожидать, что Apple будет делать экраны с 16-битной точностью в норме в ближайшем будущем.) Используются поплавки от 0 до 1 , чтобы развести битовую глубину из цветового представления.

https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UIColor_Class/index.html#//apple_ref/occ/instm/UIColor/initWithRed:green:blue:alpha:

13

Чтобы использовать значения RGB, просто разделить их на 255.0. Это произведет значение с плавающей точкой между 0 и 1.

let color = UIColor(red: 41.0/255.0, green: 40.0/255.0, blue: 39.0/255.0, alpha: 1.0) 
1

IOS 10 Swift 3,0

Если вы не возражаете, чтобы использовать быстрые рамки, то нам UINeraida изменить TabBar фон, как UIColor или HexColor или UIImage и изменение цвета для наземного монтажа.

Для UITabBar

neraida.tabbar.background.color.uiColor(UIColor.orange, isTranslucent: false, viewController: self) 

//change tab bar tint color //(select,unselect) 

neraida.tabbar.foreground.color.uiColor((UIColor.white,UIColor.green), viewController: self) 

//set Background Image for tab bar 

neraida.tabbar.background.image("background", isTranslucent: false, viewController: self)