248 votes

Rendre UINavigationBar transparent

Comment faire un UINavigationBar transparent ? Si je tiens son bar points à rester visible.

651voto

Gabriele Petronella Points 32362

Si quelqu'un se demande comment atteindre cet objectif dans iOS 7+, voici une solution (iOS 6 compatible aussi)

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

En swift

self.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationBar.shadowImage = UIImage()
self.navigationBar.translucent = true

Discussion

Paramètre translucent de YES sur la barre de navigation fait le tour, en raison d'un comportement décrit dans l' UINavigationBar de la documentation. Je vais rapporter ici les pertinentes de fragment:

Si vous définissez cette propriété sur YES sur une barre de navigation avec un opaque image de fond personnalisée, la barre de navigation appliquer un système d'opacité de moins de 1,0 à l'image.

30voto

Artanis Points 3364

Dans iOS5 vous pouvez le faire pour rendre la barre de navigation transparente :

14voto

gotnull Points 4918

Pour tous ceux qui veulent faire dans Swift :

10voto

quano Points 5084
Cela semble fonctionner.

5voto

Sander Points 67

Je sais que ce sujet est vieux, mais si les gens veulent savoir comment son fait sans surcharger la méthode drawRect.

C’est ce dont vous avez besoin :

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