web-dev-qa-db-fra.com

Comment rendre la barre de navigation transparente dans iOS 7?

Existe-t-il un moyen de rendre la barre d'un contrôleur de navigation totalement transparente?

Ce que j'ai essayé:

[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar setBarTintColor:[UIColor clearColor]];
[self.navigationController.navigationBar setAlpha:0.0];

mais l'aspect de la barre ne change pas et reste blanc translucide. J'essaie de rendre visible les éléments de la barre, mais pas la barre elle-même. Quelqu'un peut me diriger dans la bonne direction? Merci

18
user1244109

Si quelqu'un se demande comment y parvenir dans iOS 7, voici une solution (compatible iOS 6 aussi)

[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;

Définir translucide sur OUI dans la barre de navigation fait l'affaire, en raison d'un comportement décrit dans la documentation UINavigationBar. Je vais rapporter ici le fragment pertinent:

Si vous définissez cette propriété sur OUI dans une barre de navigation avec une image d'arrière-plan personnalisée opaque, la barre de navigation appliquera une opacité système inférieure à 1,0 à l'image.

Référence de: Rendre UINavigationBar transparent

65
Pradhyuman sinh

Vous pouvez rendre la barre de navigation transparente avec le code suivant


[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[UIImage new]];
[self.navigationBar setTranslucent:YES];
22
Haresh Ghatala