Swiftを使用してXCodeのViewControllerでタブバーの色を変更しようとしています。 RGB値に一致させた16進があり、このコードでそれを設定しようとしています。 (これは機能しません)
let color = UIColor(red: 41, green: 40, blue: 39, alpha: 1.0)
UITabBar.appearance().barTintColor = color
ただし、このコードは次のことを行います。
UITabBar.appearance().barTintColor = UIColor.whiteColor()
なぜこれが機能しないのか、そしてそれを修正するために私ができることを誰かが説明できますか?
すべてのRGBコンポーネントがチャネルごとに使用可能な最大値である1より大きいため、機能しません。あなたはおそらくカラーチャンネルをバイトとして考えているでしょうが、それはさまざまなカラービット深度にスケーリングしません。 (たとえば、iOSの初期バージョンではRGBA8888ではなくRGB565にレンダリングするのが一般的でした。そして、近い将来、Appleが16ビット精度の画面を標準にすることを期待できます。 。)ビット深度を色表現から切り離すために、0から1までのフロートが使用されます。
RGB値を使用するには、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)
iOS 10 Swift 3.0
Swiftフレームワークを使用してもかまわない場合は、 INeraida でタブバーの背景を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)