Sto installando un aspetto personalizzato per un controller di navigazione specifica:iOS UINavigationBar colore di tinta appare più scuro del colore impostato
//Set Cutom Nav Bar Appearance
[[UINavigationBar appearanceWhenContainedIn:[MyNavigationControllerClass class], nil] setBackgroundImage: nil forBarMetrics: UIBarMetricsDefault];
[[UINavigationBar appearanceWhenContainedIn:[MyNavigationControllerClass class], nil] setBarTintColor: self.tableView.backgroundColor];
Quando viene visualizzato il controller di navigazione, il colore atteso è RGB (247, 247, 247) - che ho ricontrollato è anche il valore del colore tableView.background quando il valore è impostato - ma appare sullo schermo come RGB (227, 227, 227). Potrebbe esserci una proprietà diversa del proxy di aspetto di UINavigationBar che sta cambiando il colore visualizzato sullo schermo?
Grazie!
Edit:
Inoltre, se ho impostato il barTintColor direttamente utilizzando il colore desiderato, il barTintColor visualizzato sullo schermo è ancora più scuro di quanto previsto:
UIColor* navBarBackgroundColor = [UIColor colorWithRed: (247.0/255.0) green: (247.0/255.0) blue: (247.0/255.0) alpha: 1];
//Set Cutom Nav Bar Appearance
[[UINavigationBar appearanceWhenContainedIn:[MyNavigationControllerClass class], nil] setBackgroundImage: nil forBarMetrics: UIBarMetricsDefault];
[[UINavigationBar appearanceWhenContainedIn:[MyNavigationControllerClass class], nil] setBarTintColor: navBarBackgroundColor];
Soluzione
Ecco il codice della soluzione derivato dalla risposta di @ Matt. Speranza che aiuta qualcuno
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [self.tableView.backgroundColor CGColor]);
CGContextFillRect(context, rect);
UIImage *navBarImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//Set Cutom Nav Bar Appearance
[[UINavigationBar appearanceWhenContainedIn:[MyNavigationControllerClass class], nil] setBackgroundImage: navBarImage forBarMetrics: UIBarMetricsDefault];
Aggiungeresti la riga di codice dove stai specificando i valori RGB? –
Potrebbero essere le impostazioni alfa o trasparenza della barra? Hai controllato? – Michal
@William il colore tableView.background che viene inoltrato alla barra di navigazione viene impostato nello storyboard. Indipendentemente da ciò, anche se imposto esplicitamente il colore desiderato, viene comunque mostrato più scuro del colore impostato (codice in Modifica sopra) – Glavid