Devo cambiare il colore di selezione di UITabBar dal blu di default al rosso. Come facciamo questo.Come modificare il colore di selezione UITabBar
risposta
L'SDK non lo rende facile, ma è tecnicamente tecnicamente possibile. Apparentemente Apple ritiene che questo sia parte della loro visione di un aspetto e una sensazione coerenti.
UITabBar è una sottoclasse di UIView. È sempre possibile creare sottoclasse e implementare la propria -drawRect:
Questo non è un compito banale, tuttavia, è necessario essenzialmente ri-implementare la classe da zero o si rischiano alcuni effetti collaterali strani.
iOS 5.0 risolve questo problema ma la soluzione è in NDA. Cerca UITabBar nella tua documentazione per un modo FACILE di fare ciò che vuoi fare.
In IOS5, UITabBar ha una proprietà selectedImageTintColor che fa ciò di cui hai bisogno.
è estremamente facile
Creare una classe personalizzata di UITabBarController e in -(void)viewDidLoad
metodo Add questa linea:
[[self tabBar] setSelectedImageTintColor:[UIColor greenColor]];
ma questo cambierà il colore del testo, non l'intera area di selezione. Un modo per riuscirci? –
Obsoleto in ios 8 – codercat
Sono stato alla ricerca di un modo per impostare il colore del testo selezionato di un UITabBarItem e hanno trovato un metodo semplice e morto, usando il protocollo UIAppearance.
[UITabBarItem.appearance setTitleTextAttributes:@{
UITextAttributeTextColor : [UIColor greenColor] } forState:UIControlStateNormal];
[UITabBarItem.appearance setTitleTextAttributes:@{
UITextAttributeTextColor : [UIColor purpleColor] } forState:UIControlStateSelected];
Si prega di scusare i colori orribili!
UITextAttributeTextColor è obsoleto. qual è l'alternativa? –
Penso che sia NSForegroundColorAttributeName –
Grazie ... sei un genio .. –
In iOS 7 è semplicemente il tintColor. Un modo per raggiungere questo obiettivo potrebbe essere quello di creare una sottoclasse UITabBarViewController, impostare la classe personalizzata nello storyboard, e nel vostro viewDidLoad
metodo della tabBarVC sottoclasse aggiungere questo:
[[self tabBar] setTintColor:[UIColor redColor]];
Io costantemente come me stesso: "Perché devo creare una sottoclasse per una cosa minore come cambiare i colori?". Bella domanda, perché f * non eredita automaticamente semplicemente tintColor dalla vista genitore? E perché l'impostazione del generatore di interfaccia non fa nulla? –
Come utilizzare SelectedImageTintColor in ios 8 – codercat
[self.tabBarController.tabBar setTintColor: [UIColor redColor]]; farebbe anche il trucco –
Perché UITextAttributeTextColor è deprecato in iOS 7, è necessario utilizzare:
[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor greenColor]} forState:UIControlStateNormal];
[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor purpleColor]} forState:UIControlStateSelected];
Questo funziona come un fascino in iOS 8 e 9. – AndyH
Aggiornamento settembre 2017: sono passati due anni da quando ho scritto questa risposta e dal momento che sta ricevendo upvotes regolarmente, dovrei dire che questo è probabilmente la risposta peggiore possibile a questa domanda, è soggetto ad errori, Li kely da rompere a causa di aggiornamenti iOS, difficile da debugare, ecc., quindi per favore non fare le cose che ho scritto e applicare soluzioni migliori come la sottoclasse di UITabBar o UITabBarController. Grazie.
È possibile eseguire questa operazione impostando un attributo "tintColor" (percorso chiave) per UITabBar.
- Selezionare UITabBar nel profilo del documento. (NON il controller con l'icona gialla.)
- Selezionare Identity Inspector nell'area Utilities.
- Fare clic su + in "Attributi runtime definiti dall'utente".
- Aggiungi un percorso chiave "tintColor" di tipo "Colore" e il colore desiderato.
Questo dovrebbe farlo. Puoi verificarlo sullo screenshot qui sotto.
Maggiori informazioni su questo: C'è un attributo "Tinta" a Identità ispettore di UITabBar che credevo avrebbe fatto la stessa cosa, ma a quanto pare, non si fa nulla. Il suo valore di default è il colore di riempimento predefinito esatto quando viene selezionato un UITabBarItem, quindi la mia ipotesi è che verrà corretto nella versione stabile Xcode 7. Incrocio le dita.
puoi farlo anche su xcode 6, buona risposta, questa dovrebbe essere la soluzione –
Questo funziona anche su iOS 8 ... – Ankahathara
sembra che questo non sia ancora stato risolto nella versione ufficiale di xcode 7 - questa risposta mi ha salvato un po 'di mal di testa, grazie! –
A partire da iOS 8 è così semplice come:
UITabBar.appearance().tintColor = UIColor.redColor()
semplicemente cambiare la seguente proprietà in Interface Builder per la TabBar
Ovviamente nel mio caso la sua bianca.
Per raggiungere sopra risultato eseguire segue.
Fase 1: Aggiungi le immagini desiderate in Assets.xcassets
, e assicurarsi che Render As
: Default
Fase 2: Selezionare l'oggetto UITabBar
e impostare Image Tint
colore, questo colore sarà colore scheda selezionata
Fase 3: SelezionareUITabBar
oggetto e aggiungere tasto PATH: unselectedItemTintColor
, Tipo: Color
, Valore: Runtime Definito Choose color for unselected item
in attributi utente.
Tutto fatto.
- 1. Come modificare il colore di sfondo della selezione ListBox?
- 2. Come cambiare il colore di sfondo del colore della scheda selezionato di UITabbar in blu?
- 3. Modificare il colore di selezione di un QTableWidget
- 4. È necessario modificare il colore della selezione della vista tabella
- 5. Come modificare il colore di HUD luogo di colore grigio
- 6. Come modificare il colore di JProgressBar?
- 7. Cambiare il colore di selezione del testo usando i CSS?
- 8. Selezione tratto non utilizzerà il colore selezionato
- 9. Colore selezione ListBox WPF
- 10. Come modificare il colore di sfondo di un SFSafariViewController?
- 11. Come modificare il colore delle schede di navigazione di ActionBar?
- 12. Come modificare il colore della barra di ricerca in Android?
- 13. Come modificare il colore di UINavigationBar a livello globale?
- 14. Come modificare il colore degli elementi di QStringListModel?
- 15. Come modificare il colore di evidenziazione dell'utilizzo in IntelliJ IDEA
- 16. Come modificare il colore di sfondo dell'area informazioni su ImageCardView?
- 17. Come modificare il colore di sfondo del TextBox?
- 18. Come modificare il colore dietro la finestra di dialogo Android
- 19. Come modificare il colore di TabIndicater in PagerTabStrip
- 20. Android: Come modificare il colore del testo di ProgressDialog?
- 21. Come modificare il colore del testo di IcsSpinner in ActionBarSherlock?
- 22. Swift Come modificare il colore del titolo di UIAlertController
- 23. Come modificare il colore ProgressBar indeterminato di Android?
- 24. Come modificare il colore del footer del pannello di bootstrap
- 25. come modificare il colore di evidenziazione sul campo editText
- 26. Come modificare il colore CheckMark di un CheckBox in WP8.1?
- 27. Come modificare il colore di evidenziazione delle icone della barra delle linguette? (iPhone/iPad)
- 28. Come modificare il colore del testo e il colore di riempimento
- 29. Come modificare il colore del puntatore EditText (non il cursore)
- 30. Modificare il colore del divisore in LinearLayout
Obsoleto in iOS 8. – KPM
@KPM, vedo che è deprecato, ma cosa dovremmo usare invece? Funziona ancora su iOS 8, per quello che vale. –
Vedi la risposta di kyle qui sotto. http://stackoverflow.com/a/18996564/364446 – KPM