Je veux que UINavigationBar dans mon application soit complètement transparent et affleure avec le viewcontroller directement en dessous. Cependant, le seul code que j'ai pu trouver le rend translucide mais pas transparent. Je sais que cela peut être fait dans iOS 7 car il est utilisé dans l'application Notes. Ma question est, quel est le code qu'ils ont utilisé pour le faire?
cocoa-touch
uinavigationbar
transparency
translucency
cory ginsberg
la source
la source
self.edgesForExtendedLayout = UIRectEdgeNone;
Pour Swift3 et Swift4
Pour Swift2.2
Pour Objective-C
la source
Solution autonome en tant que catégorie Objective-C:
UINavigationController + TransparentNavigationController.h
UINavigationController + TransparentNavigationController.m
Maintenant, vous pouvez importer la catégorie dans votre
UIViewController
et appeler les méthodes sur votre contrôleur de navigation - par exemple:Et une solution similaire dans Swift :
la source
hideTransparentNavigationBar()
devrait le réinitialiser.viewDidHide
le contrôleur de vue parent.Alan a oublié une ligne
Donc j'ai:
la source
La grande réponse de @ Zorayr révisée à Swift 3:
la source
Swift 4.2 et iOS 12
Il s'avère que tout ce dont vous avez vraiment besoin est le code ci-dessous. Cela fonctionne parfaitement lorsque vous le mettez
viewDidLoad()
.la source
Utilisez le pod UINavigationBar + Addition , puis appelez simplement:
la source
[(UIView *) [self.navigationController.navigationBar.subviews objectAtIndex: 0] setAlpha: 0.0f];
Cette ligne semblait fonctionner parfaitement pour moi
la source