更改标签栏颜色(Swift)

时间:2014-10-27 19:56:32

标签: swift tabview

我正在尝试使用swift更改XCode中视图控制器中的标签栏颜色。我有一个十六进制,我匹配RGB值,我试图在此代码中设置它。 (哪个不起作用)

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

但是这段代码可以:

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

任何人都可以解释为什么这不起作用,我能做些什么来解决它?

3 个答案:

答案 0 :(得分: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 :(得分:5)

它不起作用,因为所有RGB组件都大于1,这是每个通道的最大可用值。您可能会将颜色通道视为字节,但这不会扩展到不同的颜色位深度。 (例如,在早期版本的iOS中渲染到RGB565,而不是RGBA8888是很常见的。并且你可能期望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

答案 2 :(得分:0)

iOS 10 Swift 3.0

如果您不介意使用swift框架,那么我们UINeraida将标签栏背景更改为UIColorHexColorUIImage并更改完整的forground颜色。

适用于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)