更改选项卡栏颜色(Swift)

kuarbcqp  于 2022-11-21  发布在  Swift
关注(0)|答案(4)|浏览(202)

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

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

但是,此代码可以:

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

有人能解释一下为什么这不起作用吗?我能做些什么来修复它?

iyfamqjs

iyfamqjs1#

要使用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)
hfyxw5xn

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:

gpfsuwkq

gpfsuwkq3#

iOS 10雨燕3.0

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

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

xggvc2p64#

这种方式对我很有效:

tabBarController?.tabBar.backgroundColor = .red

相关问题