Sulla mia barra di navigazione, ho un paio di a destra che hanno icone personalizzate (le immagini delle icone sono bianche, che hanno funzionato bene con la combinazione di colori di base di iOS 6).
Sotto iOS 7, caricando le immagini usando initWithTitle (vedi Code Snippet 1) Sostituisce il colore "bianco" nell'icona con la tinta globale corretta (in questo caso un colore specifico di blu scuro)
Codice Snippet 1:
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:(UIBarButtonItemStyle) UIBarButtonSystemItemCancel target:(self) action:@selector(refreshList)];
refreshButton.image = [UIImage imageNamed:@"RefreshIcon.png"];
Tuttavia, avevo bisogno di utilizzare initWithCustomview per superare uno strano cambiamento nel comportamento che stava causando la spostamento delle icone. L'idea di base era quella di impostare specificamente la dimensione delle icone. InitWithCustomView ha risolto il problema del dimensionamento, ma non visualizza le immagini dei pulsanti con la tinta globale, vengono visualizzate nel colore dell'immagine (bianco). Code Snippet 2 mostra come sto creando il pulsante con initWithCustomView.
Codice Snippet 2:
CGRect frameCustomButton2 = CGRectMake(0.0, 0.0, 18.0, 18.0);
UIButton *customButton2 = [[UIButton alloc] initWithFrame:frameCustomButton2];
[customButton2 setBackgroundImage:iconRefreshButton forState:UIControlStateNormal];
UIBarButtonItem *barCustomButton2 =[[UIBarButtonItem alloc] initWithCustomView:customButton2 ];
barCustomButton2.image = iconRefreshButton;
[customButton2 addTarget:self action:@selector(refreshList) forControlEvents:UIControlEventTouchUpInside];
Tutto questo codice è ovviamente in (void) ViewDidload. Ho provato cose come:
barCustomButton2.tintColor = [UIColor blackColor]; //doesn't work
o [BarbuttonaPappearance SettintColor: [UICOLOR BLACKCOLOR]]; // non funziona
E non prevalgono nel colore bianco dell'immagine. È quasi come se la creazione della vista personalizzata avvenga dopo che la vista guardasse il colore di tinta globale?
Come posso assicurarmi che l'icona del pulsante assumi la tinta globale?
Grazie!