2014-10-27 18 views
15

Sto tentando di modificare il colore della barra delle schede in un controller di visualizzazione in XCode utilizzando swift. Ho un esagono che ho abbinato a un valore RGB e sto cercando di impostarlo in questo codice. (Che non funziona)Modifica del colore della barra delle schede (Swift)

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

Tuttavia questo codice fa:

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

Qualcuno può spiegare perché questo non funziona, e cosa posso fare per risolvere il problema?

risposta

5

Non funziona perché tutti i componenti RGB sono maggiori di 1, ovvero il valore massimo disponibile per canale. Probabilmente stai pensando ai canali di colore come byte, ma questo non si ridurrebbe a diverse profondità di bit del colore. (Ad esempio, era comune eseguire il rendering su RGB565, non RGBA8888 nelle prime versioni di iOS e probabilmente ci si può aspettare che Apple crei schermi con precisione a 16 bit nella norma, nel prossimo futuro.) Vengono utilizzati i float da 0 a 1 , per divorziare dalla profondità del bit della rappresentazione del colore.

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

13

Per utilizzare i valori RGB, basta dividere per 255.0. Ciò produrrà un valore float compreso tra 0 e 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

Se non ti dispiace usare quadri veloci poi ci UINeraida a cambiare Tabbar background come UIColor o HexColor o UIImage e modificare il colore completo forground.

Per 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) 
Problemi correlati