Quiero que UINavigationBar en mi aplicación sea completamente transparente y esté al ras con el controlador de vista directamente debajo de él. Sin embargo, el único código que pude encontrar lo hace translúcido pero no transparente. Sé que esto se puede hacer en iOS 7 porque se usa en la aplicación de notas. Mi pregunta es, ¿cuál es el código que usaron para hacerlo?
cocoa-touch
uinavigationbar
transparency
translucency
Cory Ginsberg
fuente
fuente
self.edgesForExtendedLayout = UIRectEdgeNone;
Para Swift3 y Swift4
Para Swift2.2
Para el objetivo-C
fuente
Solución autónoma como categoría de Objective-C:
UINavigationController + TransparentNavigationController.h
UINavigationController + TransparentNavigationController.m
Ahora puede importar la categoría en su
UIViewController
y llamar a los métodos en su controlador de navegación, por ejemplo:Y una solución similar en Swift :
fuente
hideTransparentNavigationBar()
debería restablecerlo de nuevo.viewDidHide
el controlador de vista principal.Alan olvidó una línea
Así que tengo:
fuente
La gran respuesta de @ Zorayr revisada a Swift 3:
fuente
Swift 4.2 y iOS 12
Resulta que todo lo que realmente necesita es el siguiente código. Funciona perfectamente cuando lo pones
viewDidLoad()
.fuente
Use el pod UINavigationBar + Addition , luego simplemente llame:
fuente
[(UIView *) [self.navigationController.navigationBar.subviews objectAtIndex: 0] setAlpha: 0.0f];
Esa línea parecía funcionar perfectamente para mí.
fuente