2014-10-27 17 views
15

Ich versuche, die Farbe der Registerkartenleiste in einem Ansichtscontroller in XCode mithilfe von swift zu ändern. Ich habe ein Hex, dass ich bis zu einem RGB-Wert übereinstimmte, und ich versuche, das in diesem Code festzulegen. (Welche funktioniert nicht)Farbe der Registerleiste ändern (Swift)

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

jedoch dieser Code tut:

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

Kann mir jemand erklären, warum dies nicht funktioniert, und was ich kann es zu beheben?

Antwort

5

Es funktioniert nicht, da alle RGB-Komponenten größer als 1 sind. Dies ist der maximal verfügbare Wert pro Kanal. Sie denken wahrscheinlich an die Farbkanäle als Bytes, aber das würde nicht auf unterschiedliche Farbtiefen skalieren. (In frühen iOS-Versionen war es zum Beispiel üblich, RGB565 und nicht RGBA8888 zu rendern. Und Sie können wahrscheinlich erwarten, dass Apple in naher Zukunft Bildschirme mit 16-Bit-Genauigkeit zur Norm macht.) Floats von 0 bis 1 werden verwendet , um die Bittiefe von der Farbdarstellung zu trennen.

https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UIColor_Class/index.html#//apple_ref/occ/instm/UIColor/initWithRed:green:blue:alpha:

13

RGB-Werte zu verwenden, sie nur teilen, indem er 255.0. Dadurch wird ein Float-Wert zwischen 0 und 1.

let color = UIColor(red: 41.0/255.0, green: 40.0/255.0, blue: 39.0/255.0, alpha: 1.0) 
1

iOS 10 Swift 3.0

produzieren Wenn Sie nicht swift Frameworks etwas dagegen, uns zu verwenden, dann UINeraida Tabbar Hintergrund als UIColor oder HexColor zu ändern oder UIImage und ändern Sie die komplette Grundfarbe.

Für 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) 
Verwandte Themen