64 votes

Comment modifier la barre de navigation de couleur dans iOS 7 ou 6?

Je veux changer la couleur de la barre de navigation couleur, mais je ne suis pas sûr de savoir si ou non je dois changer la teinte ou de l'arrière-plan. Je sais que iOS 7 est d'aller pour un plus design plat (même de recommander la suppression des gradients), mais je vais avoir du mal à déchiffrer les deux. Même si j'ai mis une couleur de fond, cela ne sert à rien.

Dans cette image, l'arrière-plan est vert, mais la barre est toujours bleu:

Enter image description here

107voto

Mahesh Points 749

Le comportement de nuance de couleur pour les bars a changé sur iOS 7.0. Il n'affecte plus la barre d'arrière-plan et se comporte comme décrit pour la nuance de couleur de la propriété ajouté à UIView. Pour la teinte de la barre d'arrière-plan, veuillez utiliser -barTintColor.

navController.navigationBar.barTintColor = [UIColor navigationColor];

79voto

proca 2.0 Points 1476

Si vous voulez avoir une couleur solide pour votre barre de navigation dans iOS 6 est similaire à iOS 7, utilisez ceci:

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[UIColor greenColor]];

dans iOS 7 utilisation de l' barTintColor comme ceci:

navigationController.navigationBar.barTintColor = [UIColor greenColor];

ou

 [[UINavigationBar appearance] setBarTintColor:[UIColor greenColor]];

36voto

Ashish Points 628

// Dans ios 7 :-

[self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];

// Dans ios 6 :-

[self.navigationController.navigationBar setTintColor:[UIColor yellowColor]];

11voto

Charles A. Points 971

La couleur de fond de la propriété est ignorée sur un UINavigationBar, donc si vous voulez modifier l'apparence et la sensation soit vous devez utiliser l' tintColor ou appeler certains des autres méthodes décrites sous "Personnalisation de l'Apparence de la Barre" de la UINavigationBar classe de référence (comme setBackgroundImage:forBarMetrics:).

Être conscient que l' tintColor de la propriété fonctionne différemment dans iOS 7, donc, si vous voulez un look cohérent entre iOS 7 et les versions antérieures à l'aide d'une image d'arrière-plan peut être votre meilleur pari. Il est également intéressant de mentionner que vous ne pouvez pas configurer l'arrière-plan de l'image dans le plan de montage, vous aurez à créer un IBOutlet votre UINavigationBar et de le modifier en viewDidLoad ou d'un autre endroit.

5voto

null Points 11407

Une chose de plus, si vous souhaitez modifier la navigation bg couleur dans UIPopover , vous devez définir le barStyle de UIBarStyleBlack

if([UINavigationBar instancesRespondToSelector:@selector(barTintColor)]){ //iOS7
    navigationController.navigationBar.barStyle = UIBarStyleBlack;
    navigationController.navigationBar.barTintColor = [UIColor redColor];
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X