我正在尝试使用swift更改XCode中视图控制器中的标签栏颜色。我有一个十六进制,我匹配RGB值,我试图在此代码中设置它。 (哪个不起作用)
let color = UIColor(red: 41, green: 40, blue: 39, alpha: 1.0)
UITabBar.appearance().barTintColor = color
但是这段代码可以:
UITabBar.appearance().barTintColor = UIColor.whiteColor()
任何人都可以解释为什么这不起作用,我能做些什么来解决它?
答案 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的浮点数被使用,将比特深度与颜色表示分开。
答案 2 :(得分:0)
iOS 10 Swift 3.0
如果您不介意使用swift框架,那么我们UINeraida将标签栏背景更改为UIColor
或HexColor
或UIImage
并更改完整的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)