Quero que o UINavigationBar no meu aplicativo seja completamente transparente e nivelado com o viewcontroller diretamente abaixo dele. No entanto, o único código que encontrei o torna translúcido, mas não transparente. Eu sei que isso pode ser feito no iOS 7, porque é usado no aplicativo de notas. Minha pergunta é: qual é o código que eles usaram para fazer isso?
cocoa-touch
uinavigationbar
transparency
translucency
Cory Ginsberg
fonte
fonte
self.edgesForExtendedLayout = UIRectEdgeNone;
Para Swift3 e Swift4
Para Swift2.2
Para Objective-C
fonte
Solução independente como uma categoria Objective-C:
UINavigationController + TransparentNavigationController.h
UINavigationController + TransparentNavigationController.m
Agora, você pode importar a categoria no seu
UIViewController
e chamar os métodos no seu controlador de navegação - por exemplo:E uma solução semelhante no Swift :
fonte
hideTransparentNavigationBar()
deve redefini-lo de volta.viewDidHide
o controlador de exibição pai.Alan esqueceu uma linha
Então eu tenho:
fonte
A grande resposta de @ Zorayr revisada para Swift 3:
fonte
Swift 4.2 e iOS 12
Acontece que tudo o que você realmente precisa é do código abaixo. Funciona perfeitamente quando você o coloca
viewDidLoad()
.fonte
Use o pod UINavigationBar + Addition e simplesmente chame:
fonte
[(UIView *) [self.navigationController.navigationBar.subviews objectAtIndex: 0] setAlpha: 0.0f];
Essa linha parecia funcionar perfeitamente para mim
fonte