Cómo implementar una barra de navegación transparente para Android
En mi subclase UINavigationController, configuro la barra de navegación para que sea translúcida: - (id)initWithRootViewController:(UIViewController *)rootViewController{ if (self = [super initWithRootViewController:rootViewController]) { self.navigationBar.translucent = YES } return self; }El color de tinte está en mi subclase UIApplicationDelegate donde configuro el tinte en la barra de navegación. Descubrí que el valor alfa del sombreado no hizo ninguna diferencia. Es decir, usar alpha 0.1 no hará que la barra de navegación se vuelva más translúcida. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[UINavigationBar apariencia] setTintColor:[UIColor greenColor]];} borde En mi controlador de vista de contenido estableceré el borde en UIRectEdgeNone, de modo que el La barra de navegación superior no se dividirá. Si utiliza el UIRecEdgeAll predeterminado, la barra de navegación ocupará permanentemente la parte superior del contenido. Incluso si acepto esta excepción, UIRectEdgeAll todavía no logra habilitar la translucidez. - (void) viewDidLoad{ [super viewDidLoad]; self.edgesForExtendedLayout = UIRectEdgeNone;}Editar: Experimentos con bordes El problema publicitario señalado por @rmaddy puede estar relacionado con bordesForExtendedLayout. Encontré un tutorial completo sobre bordesForExtendedLayout e intenté implementarlo: - (void) viewDidLoad{ [super viewDidLoad]; self.edgesForExtendedLayout = UIRectEdgeAll; self.automaticallyAdjustsScrollViewInsets = YES; Esto no funciona. En primer lugar, no hay efecto de translucidez. En segundo lugar, se cortó la parte superior de mi contenido. En el código anterior y en la página de ejemplo a continuación, el "avatar" se compone inicialmente de la barra de navegación, lo que dificulta el desplazamiento hacia abajo. Puedes bajar para ver el avatar en la parte superior, pero cuando lo sueltas, aparece la página y el "avatar" se cubre nuevamente. Solución 1: este problema se debe a la vista de actualización desplegable de terceros EGORefreshTableHeaderView, que comúnmente utiliza el control de actualización del sistema importado de iOS 6 anterior. En iOS 6 y iOS 7, usé condicionalmente UIRefreshControl. Puedo usar UIRectEdgeAll para hacer desaparecer el contenido debajo de la barra de navegación. Finalmente, muestre la barra de navegación con un alfa inferior para obtener un efecto translúcido en el mapa de tonos.
[[Apariencia de UINavigationBar] setTintColor:[UIColor colorWithWhite:0.0 alpha:0.5]];
[[Apariencia de UINavigationBar] setTintColor:[UIColor colorWithWhite:0.0 alpha:0.5]];
[[Apariencia de UINavigationBar] setTintColor:[UIColor colorWithWhite:0.0 alpha:0.5]]
;