La struttura è la seguente:Preservare il colore dell'immagine originale delle icone UITabBar selezionati e non selezionati
Nel mio storyboard, ho un Tab Bar Controller
che contiene un oggetto Tab Bar
. Questo oggetto ha una classe personalizzata in cui ho solo questo metodo:
- (void)awakeFromNib
{
NSArray *imageNames = @[@"test1", @"test2", @"test3", @"test4", @"test5"];
for (int i=0; i<5; i++) {
UITabBarItem *item = [self.items objectAtIndex:i];
NSString *imageName = [imageNames objectAtIndex:i];
item.image = [[UIImage imageNamed:imageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
item.selectedImage = [UIImage imageNamed:[imageName stringByAppendingString:@"-selected"]];
}
}
ho creato un Asset Catalog
che contiene le mie icone Tab Bar, entrambe le versioni selezionati e non selezionati (colori differenti).
Il documentation per UIImageRenderingModeAlwaysOriginal
menzioni Disegna sempre l'immagine originale, senza trattarla come modello. che dovrebbe preservare il colore dell'immagine originale. Questo non sembra accadere e il suggerimento this non ha funzionato neanche.
Quello che succede invece è che nello stato selezionato, le mie icone della barra delle schede ottengono il colore di tinta blu predefinito.
Una cosa che ho notato è che se faccio la seguente (tratto da here) nel didFinishLaunchingWithOptions
nel AppDelegate
, allora posso impostare il colore delle icone Tab Bar selezionati come voglio:
[[UITabBar appearance] setTintColor:[UIColor purpleColor]];
la documentazione per la setTintColor
menzioni:
il colore della tinta da applicare agli elementi barra delle schede del bar scheda. A partire da iOS 7.0, il colore della tinta che si applica agli elementi della barra delle schede di una barra delle schede è il primo colore tinta non predefinito nella gerarchia della vista, a partire dalla barra delle schede stessa.
Ciò significa che indipendentemente dal colore delle icone della barra delle schede (originale nelle immagini stesse), nello stato selezionato avranno sempre il colore di tintColor
?
O sto facendo qualcosa di sbagliato/manca qualcosa?
Sto riscontrando questo problema su iOS 7.0 e 7.1.
Spero che la mia risposta ti può aiutare. –