我正在尝试使用swift更改XCode视图控制器中的标签栏颜色。我有一个十六进制,我匹配了一个RGB值,我正在尝试在此代码中设置它。(这不起作用)
let color = UIColor(red: 41, green: 40, blue: 39, alpha: 1.0)
UITabBar.appearance().barTintColor = color
但是,此代码可以:
UITabBar.appearance().barTintColor = UIColor.whiteColor()
有人能解释一下为什么这不起作用吗?我能做些什么来修复它?
4条答案
按热度按时间iyfamqjs1#
要使用RGB值,只需将其除以
255.0
。这将产生一个介于0和1之间的浮点值。hfyxw5xn2#
它不起作用,因为所有RGB分量都大于1,这是每个通道的最大可用值。您可能认为颜色通道是字节,但这不会缩放到不同的颜色位深度。(例如,通常渲染为RGB565,而不是早期版本的iOS中的RGBA8888。你可能会期望苹果在不久的将来使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:
gpfsuwkq3#
iOS 10雨燕3.0
如果你不介意使用swift框架,那么使用UINeraida将标签栏背景更改为
UIColor
或HexColor
或UIImage
,并将背景颜色更改为完整的。用于UITabBar
xggvc2p64#
这种方式对我很有效: