iOS 7.1 ACTUALIZACIÓN: se Ve como la solución para modificar el canal alfa en la UINavigationBar ha sido ignorado en esta actualización. Ahora mismo, la mejor solución parece ser «deal with it’ y la esperanza de que cualquier color que usted elija puede representar un efecto translúcido. Todavía estoy buscando maneras de conseguir alrededor de esto.


iOS 7.0.3 ACTUALIZACIÓN: El GitHub biblioteca hemos creado se ha actualizado ligeramente evitar este problema cuando se usan iOS 7.0.3. Desafortunadamente, no hay una fórmula mágica para apoyar tanto los colores creados en iOS 7.0.2 y anteriores y de iOS 7.0.3. Parece que Apple mejora la saturación, pero al costo de opacidad (desde el borrosa de la translucencia es la persona a cargo en el nivel de opacidad). Yo, junto con algunos otros, están trabajando en la creación de una mejor solución para este.


Estoy seguro de que muchas personas ya han llegado a través del problema de iOS 7 tiende a desaturar el color de un UINavigationBar que es translúcido.

Mi objetivo es lograr un UINavigationBar con este matiz de color, pero translúcido:

El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar

Sin embargo, con la translucidez, yo estoy haciendo esto. El paisaje de fondo es blanco, ya que entiendo que va a hacer este punto de vista un poco más claro:

El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar

¿Hay alguna manera para lograr el color original mientras que todavía se tiene de la translucencia? Me he dado cuenta de Facebook ha sido capaz de obtener su barra de ser rico, de color azul, como se muestra aquí:

El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar

..así que yo sé que tiene que haber alguna manera. Fondo de puntos de vista, obviamente, hacer una diferencia aquí, pero la mayoría de su contenido es también de color gris/blanco. Parece que independientemente de la barra de matiz de color que usted pone en, usted no puede obtener colores vivos bajo la translucidez.

Actualizado con la solución.

Aquí está la solución que me terminó de venir para arriba con. Tomé aprato‘s de la solución y, a continuación, abarcó la costumbre UINavigationBar dentro de un UINavigationController subclase. He creado un repositorio que tiene esta aplicación se enumeran a continuación, junto con un ejemplo de la aplicación.

////////////////////////////
//CRNavigationBar.m
////////////////////////////

#import "CRNavigationBar.h"

@interface CRNavigationBar ()
@property (nonatomic, strong) CALayer *colorLayer;
@end

@implementation CRNavigationBar

static CGFloat const kDefaultColorLayerOpacity = 0.5f;
static CGFloat const kSpaceToCoverStatusBars = 20.0f;

- (void)setBarTintColor:(UIColor *)barTintColor {
    [super setBarTintColor:barTintColor];
    if (self.colorLayer == nil) {
        self.colorLayer = [CALayer layer];
        self.colorLayer.opacity = kDefaultColorLayerOpacity;
        [self.layer addSublayer:self.colorLayer];
    }
    self.colorLayer.backgroundColor = barTintColor.CGColor;
}

- (void)layoutSubviews {
    [super layoutSubviews];
    if (self.colorLayer != nil) {
        self.colorLayer.frame = CGRectMake(0, 0 - kSpaceToCoverStatusBars, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) + kSpaceToCoverStatusBars);

        [self.layer insertSublayer:self.colorLayer atIndex:1];
    }
}

@end

////////////////////////////
//CRNavigationController.m
////////////////////////////

#import "CRNavigationController.h"
#import "CRNavigationBar.h"

@interface CRNavigationController ()

@end

@implementation CRNavigationController

- (id)init {
    self = [super initWithNavigationBarClass:[CRNavigationBar class] toolbarClass:nil];
    if(self) {
        //Custom initialization here, if needed.    
    }
    return self;
}

- (id)initWithRootViewController:(UIViewController *)rootViewController {
    self = [super initWithNavigationBarClass:[CRNavigationBar class] toolbarClass:nil];
    if(self) {
        self.viewControllers = @[rootViewController];
    }

    return self;
}

@end
  • no es Facebook iOS7 UINAvigationBar opaco ?
  • Nope, es mucho más sutil transparencia, a continuación, el defecto de iOS. Mucho mejor, de la OMI.
  • Facebook NavigationBar no transparente
  • Definitivamente es translúcido; por favor ver mi respuesta modificada.
  • Es posible que no se permiten en todos los dispositivos, pero el NewFeed definitivamente es para el iPhone 5: Imagen
  • Estoy teniendo el mismo problema. Me encantaría saber cómo lo hicieron…
  • He intentado la solución para el color 0,52,72 pero no sale como en photoshop por ejemplo..
  • Esta no es una solución para obtener los colores correctos, sino más bien una solución para corregir el brillo de la UINavigationBar de la mejor manera posible cuando se expone a la translucidez en iOS 7.
  • De hecho, es completamente opaco en el iPhone 4 y el iPad de 3ª generación. Como Centro de Control, y el Centro de Notificaciones que no utilice el cristal-efecto de desenfoque en estos dispositivos. en el Iphone 4S, es habilitado
  • Tengo lotes de parpadeo con este método (y la biblioteca).
  • Para 7.1, me encontré con que todavía funciona, pero no puede reemplazar las llamadas realizadas a través de la aparición de proxy. Es un poco chapucero pero me aplicó un patrón observer en las subclases de la barra de navegación para actualizar el color o imagen de fondo (capa de repetición de fondo de la cabecera) de dentro de la barra de navegación.
  • Cómo se consigue esto en iOS 8?
  • Hay alguna solución para esto? La app de spotify barras de navegación crear este efecto extremadamente bien.
  • Cómo usarlo con storyboard? Me he fijado CRNavigationController.h como clase personalizada de la storyborad raíz de vista. Pero no se puede ejecutar en el CRNavigationController.m.

InformationsquelleAutor SpacePyro | 2013-09-19

16 Comentarios

  1. 52

    iOS 7.0.3 ACTUALIZACIÓN: Como se puede ver por encima de 7.0.3 cambiado las cosas. He actualizado mi esencia. Esperemos que esto sólo va a desaparecer como pueblo de actualización.

    Original Respuesta:
    Terminé con un hack de la combinación de dos de las otras respuestas. Estoy subclases UINavigationBar y la adición de una capa a la espalda con un poco de espacio adicional para cubrir si alguno de los diversos altura barras de estado de seguridad. La capa se presenta ajustado en el diseño de subvistas y los cambios de color cuando se establece barTintColor.

    Esencial: https://gist.github.com/aprato/6631390

    setBarTintColor

      [super setBarTintColor:barTintColor];
      if (self.extraColorLayer == nil) {
        self.extraColorLayer = [CALayer layer];
        self.extraColorLayer.opacity = self.extraColorLayerOpacity;
        [self.layer addSublayer:self.extraColorLayer];
      }
      self.extraColorLayer.backgroundColor = barTintColor.CGColor;

    layoutSubviews

      [super layoutSubviews];
      if (self.extraColorLayer != nil) {
        [self.extraColorLayer removeFromSuperlayer];
        self.extraColorLayer.opacity = self.extraColorLayerOpacity;
        [self.layer insertSublayer:self.extraColorLayer atIndex:1];
        CGFloat spaceAboveBar = self.frame.origin.y;
        self.extraColorLayer.frame = CGRectMake(0, 0 - spaceAboveBar, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) + spaceAboveBar);
      }
    • Gracias, se ve muy bien!
    • ¿De dónde implementar esto en el ViewController? Bajo viewDidLoad?
    • Esto funciona muy bien! He decidido añadir esto a mi UINavigationController subclase. He aquí un gist de la misma para aquellos que están interesados en tener un custom UINavigationBar dentro de un UINavigationController.
    • como SpacePyro tengo un nav controlador de subclase (que al igual que el bar estaba utilizando antes de las 7 para UIAppearance de orientación) que anula initWithRootViewController el uso de este. He actualizado mi esencia
    • Um…bueno..creo que tengo que ver en todo un proyecto de prueba para ver lo que significan. Yo era capaz de replicar timeuser el ejemplo de abajo, pero todavía estoy un poco verde con esto.
    • echa un vistazo a la pregunta de nuevo. SpacePyro actualizado con mi respuesta. Sólo tiene que añadir dos nuevas clases para su proyecto, el primero en un UINavigationController la subclase y el otro un UINavigationBar subclase. Colocar el código y los cambios en todos los lugares que crear un UINavigationController a utilizar su nueva subclase. Si usted está usando la interfaz del generador de elegir tu navegación controlador, seleccione la Identidad del Inspector, usted debe ver a un campo en la parte superior denominada ‘Clase’, donde usted puede escoger su nueva subclase.
    • He utilizado la solución, pero encontró unos pocos casos de esquina, donde las nuevas capas (por ejemplo. UINavigationItemButtonViews, UINavigationItemViews, etc) sería inserta automáticamente en una posición por debajo de la extraColorLayer (que causan esas título o el botón de elementos a ser afectados por el extraColorLayer y por lo tanto más pálido en color de lo que normalmente sería). Así que me ajustar la solución a la fuerza de la extraColorLayer a permanecer en la posición de índice 1. En la posición de índice 1, el extraColorLayer se mantiene justo por encima de la _UINavigationBarBackground, pero por debajo de todo lo demás. Ver a mi de la solución a continuación.
    • Gracias por que. Der. Tengo trabajo sorta. Todavía no sale el color adecuado para mí, pero siento que no es a causa de la propuesta de solución más para la implementación de mi o algo. Voy a armar un proyecto y publicarlo para ver donde estoy pasando mal.
    • Hola Jeremy, he creado una aplicación demo/repo para esto. Puedes echar un vistazo aquí.
    • Hey @SpacePyro, yo estaba a punto de publicar lo que he hecho. Tiene una mirada como he puesto en exactamente la solución anterior con resultados ligeramente diferentes de los demás. Claramente estoy haciendo algo mal aquí. github.com/jermowatson/ColorTabs.git. Voy a revisar el tuyo también!
    • Gracias! Cuando lo escribí no estaba empujando aún 🙂 Pero he actualizado ahora, agregó UIAppearance para la opacidad y el apoyo para NSCoding
    • LO CONSIGUIÓ! Yo estaba usando un guión y claramente falta llamar a la función en el viewDidLoad, etc, etc. Buen trabajo a todos! Gracias de nuevo le estaba haciendo a mi cabeza!
    • He intentado la solución, pero no funciona. He utilizado CRNavigationController, pero aún así el color se atenúa
    • utilizando un storyboard? Yo no lo he probado aún, pero hay un par de comentarios sobre el tema en mi esencia. Voy a tratar de echar un vistazo pronto
    • Sí – yo estoy usando el guión gráfico. gracias!
    • Cómo se consigue esto en iOS 8?

  2. 10

    El comportamiento de tintColor para bares ha cambiado en iOS 7.0. No afecte a la barra del fondo y se comporta como se describe para la tintColor propiedad que se agregan a UIView. Para teñir la barra del fondo, por favor, utilice -barTintColor.Usted puede utilizar el código siguiente para hacer que la aplicación funcione con ambos ios6 y ios7.

    if(IS_IOS7)
    {
        self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
        self.navigationController.navigationBar.translucent = NO;
    }
    else
    {
        self.navigationController.navigationBar.tintColor = [UIColor blackColor];
    }

    IS_IOS7 es una macro que se define en el archivo pch como sigue.

    #define IS_IOS7 ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0)
  3. 9

    No he venido con esta solución, pero parece que funciona bastante bien. Acabo de añadir a viewDidLoad en mi subclase de UINavigationController.

    Fuente: https://gist.github.com/alanzeino/6619253

    //cheers to @stroughtonsmith for helping out with this one
    
    UIColor *barColour = [UIColor colorWithRed:0.13f green:0.14f blue:0.15f alpha:1.00f];
    UIView *colourView = [[UIView alloc] initWithFrame:CGRectMake(0.f, -20.f, 320.f, 64.f)];
    colourView.opaque = NO;
    colourView.alpha = .7f;
    colourView.backgroundColor = barColour;
    self.navigationBar.barTintColor = barColour;
    [self.navigationBar.layer insertSublayer:colourView.layer atIndex:1];
    • Parece que después de empujar un nuevo Controlador de Vista sobre la Navegación del controlador, cualquier botón de la barra de objetos se moverán a estar bajo este nivel de transparencia.
    • Los títulos de obscurecido por esta transparencia de la capa, también.
    • Escribí esta esencia. Los comentarios están a la derecha; cualquiera de los elementos de botón son empujados debajo cuando un nuevo controlador de vista es empujado, o en las subcapas están heredando el alfa de colourView. Yo bifurcada en la otra respuesta y corregido un par de cosas en una nueva caída en clase: github.com/alanzeino/AZColoredNavigationBar
    • Yo era capaz de poner el texto en blanco mediante la selección de la Translúcido Negro de la Barra de Navegación estilo… esto hizo que el truco para mí. También se establece la yourBar.tintColor = [UIColor whiteColor]; para los otros botones personalizados en la parte superior.
  4. 6

    Un modo de baja fidelidad probablemente sería clavando un UIView que es la altura de la Barra de Navegación en la parte superior de la vista detrás de la barra. Hacer que la vista del mismo color que la barra de navegación, pero jugar con el alfa hasta obtener los efectos deseados:

    UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.navigationController.navigationBar.frame), 64)];
        backgroundView.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:1 alpha:.5];
    
    [self.navigationController.view insertSubview:backgroundView belowSubview:self.navigationController.navigationBar];

    UIView detrás de

    El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar

    (Cambió de color de menor ejemplos para hacer énfasis en la transparencia. Transparencia/desenfoque es más notable cuando está en movimiento.)

    Subclases de la UINavigationBar y colocar ese mismo punto de vista sobre el fondo, pero detrás de todo lo demás probablemente va a lograr resultados similares al ser menos chapucero.



    Otra solución que he visto sacudido está jugando con la alfa de la UINavigationBar:

    self.navigationController.navigationBar.alpha = 0.5f;


    Edit: en Realidad, después de la prueba parece que este no proporciona la intención de comportamiento (o cualquier comportamiento):

    .8 alfa

    El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar

    No corregida alfa

    El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar

    Obviamente, sólo quiero hacer esto en iOS 7 dispositivos. Así, añadir algunos de comprobación de la versión antes de implementar cualquiera de estos.

    • En la segunda, el enfoque de la actualización, el alfa y la tintColor para obtener el color que usted está buscando.
    • Si usted puede conseguir los efectos deseados con la manera menos invasiva, entonces totalmente. Pero no estoy seguro de qué tan efectiva será.
    • El único problema que estoy obteniendo con este (y no parece representar en la imagen) es que es la adición de la vista directamente en la parte superior de la barra de navegación, y como resultado de ello, es el causante de los controles a ser bloqueado: cl.ly/imagen/3d3C2o0N283S
    • Huy, ahora veo. Debe ser [self.navigationController.view insertSubview:backgroundView belowSubview:self.navigationController.navigationBar];
    • Fijo en el código ahora.
    • Sí, pensé que lo que querías decir. 😉 Esto definitivamente me da un mejor espacio de colores a elegir de. Obtención de la intensidad del color original probablemente será imposible teniendo en cuenta que el efecto de desenfoque todavía realmente elimina la saturación de nada debajo de ella. Voy a tener que vivir con un color más oscuro por ahora.

  5. 4

    Lugar de crear su UIColor objeto en el RGB formato, utilice HSB y aumentar la saturación de parámetro. (Créditos a Sam Soffes que describe este método aquí)

    navigationBar.barTintColor = [UIColor colorWithHue:0.555f saturation:1.f brightness:0.855f alpha:1.f];

    Nota: Esta solución es un compromiso y no funciona bien para los colores con alta saturación.

    Para elegir el color HSB de su diseño, puede utilizar una herramienta como ColorSnapper que le permite simplemente copia el UIColor HSB formato.

    También se puede probar el UIColor Categoría (Enlace A GitHub) de David Keegan para modificar los colores existentes.

  6. 3

    El problema ya se ha solucionado por Apple en la nueva versión 7.0.3.

    • Sí, su matiz de color de la aplicación ha cambiado definitivamente en 7.0.3. Ahora puedo alcanzar mi color deseado que acaba de golpear la saturación de alrededor de 10-15%. Antes de que yo también necesitaba de anuncios de la capa adicional.
    • Gracias por dejarme saber! Voy a estar empujando una actualización a mi biblioteca para esto.
    • Y no fijadas en 7.1 >_<
  7. 1

    He usado @aprato de la solución, pero encontró unos pocos casos de esquina, donde las nuevas capas de nueva VCs (por ejemplo. UINavigationItemButtonViews, UINavigationItemViews, etc) sería inserta automáticamente en una posición por debajo de la extraColorLayer (que causan esas título o el botón de elementos a ser afectados por el extraColorLayer y por lo tanto más pálido en color de lo que normalmente sería). Así que ajusté @aprato la solución de la fuerza de la extraColorLayer a permanecer en la posición de índice 1. En la posición de índice 1, el extraColorLayer se mantiene justo por encima de la _UINavigationBarBackground, pero por debajo de todo lo demás.

    Aquí está mi implementación de la clase:

    - (void)setBarTintColor:(UIColor *)barTintColor
    {
    [super setBarTintColor:barTintColor];
    if (self.extraColorLayer == nil)
    {
    self.extraColorLayer = [CALayer layer];
    self.extraColorLayer.opacity = kDefaultColorLayerOpacity;
    [self.layer insertSublayer:self.extraColorLayer atIndex:1]; //This way the text comes out clear
    }
    self.extraColorLayer.backgroundColor = barTintColor.CGColor;
    }
    - (void)layoutSubviews
    {
    [super layoutSubviews];
    if (self.extraColorLayer != nil)
    {
    self.extraColorLayer.frame = CGRectMake(0, 0 - kSpaceToCoverStatusBars, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) + kSpaceToCoverStatusBars);
    }
    }
    - (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview
    {
    [super insertSubview:view aboveSubview:siblingSubview];
    [self.extraColorLayer removeFromSuperlayer];
    [self.layer insertSublayer:self.extraColorLayer atIndex:1]; //This way the text comes out clear
    }
    - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
    {
    [super insertSubview:view atIndex:index];
    [self.extraColorLayer removeFromSuperlayer];
    [self.layer insertSublayer:self.extraColorLayer atIndex:1]; //This way the text comes out clear
    }
    - (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
    {
    [super insertSubview:view belowSubview:siblingSubview];
    [self.extraColorLayer removeFromSuperlayer];
    [self.layer insertSublayer:self.extraColorLayer atIndex:1]; //This way the text comes out clear
    }
    • Desde capas y subvistas no son mixtos, cosa sobrecarga addSubView no es necesario
  8. 0

    Ninguno de estos hacks son necesarios :). Simplemente establece:

    self.navigationController.navigationBar.translucent = NO;

    Para iOS 7, el valor predeterminado de la translucencia se ha mantenido en la VERDAD.

    • Pero la pregunta requiere de la translucencia así.
    • 🙂 Gracias, funcionó para mí. Sin embargo, hay una 1px negro borde inferior debajo de la barra de navegación. Hay alguna forma de quitarlo?
  9. 0

    En una nota relacionada, usted puede configurar su título el color del texto (con sombra) fácilmente a través de:

    NSShadow *titleShadow = [[NSShadow alloc] init];
    titleShadow.shadowOffset = CGSizeMake(0.0f, -1.0f);
    titleShadow.shadowColor = [UIColor blackColor];
    NSDictionary *navbarTitleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor],
    NSShadowAttributeName: titleShadow};
    [[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
    • Si usted está tratando de coincidir con iOS 7 el estilo, el uso de una sombra en el título del texto es probablemente inadecuado.
    • Usted está en lo correcto, en iOS 7 de Apple ya no es la configuración de las sombras en su barra de navegación de texto. Si quieres un look personalizado sin embargo, esto le daría la opción.
  10. 0

    Me encontré con este Q/de Un tiempo tratando de configurar un uniforme de color de la barra de navegación con la transparencia de los DISCAPACITADOS en iOS 7.

    Después de experimentar un rato con barTintColor me di cuenta de que de una manera muy fácil de tener un cuerpo opaco de la barra de navegación es hacer un único píxel de la imagen del color deseado, hacer un elástico imagen de ella, y el establecimiento de la backgroundImage de la barra de navegación.

    UIImage *singlePixelImage = [UIImage imageNamed:@"singlePixel.png"];
    UIImage *resizableImage = [singlePixelImage resizableImageWithCapInsets:UIEdgeInsetsZero];
    [navigationBar setBackgroundImage:resizableImage forBarMetrics:UIBarMetricsDefault]; 

    Tres líneas de código, es muy simple y funciona TANTO en iOS 6 y iOS 7 (barTintColor no es compatible en iOS 6).

  11. 0

    Hay una gran Dropin UINavigationController de reemplazo disponibles de Simon Booth disponible en GitHub Aquí GitHub – C360NavigationBar

    Si usted está hacia atrás apoyando iOS6 hacer una verificación en la raíz de controlador de vista como tal:

    PatientListTableViewController *frontViewController = [[PatientListTableViewController alloc] init];

        UINavigationController *navViewController = [[UINavigationController alloc] initWithNavigationBarClass:[C360NavigationBar class] toolbarClass:nil];
    if ([navViewController.view respondsToSelector:@selector(setTintColor:)]) {
    //iOS7
    [navViewController.view setTintColor:self.navBarTintColor];
    [[C360NavigationBar appearance] setItemTintColor:self.navBarItemTintColor];
    } else {
    //iOS6
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];
    navViewController.navigationBar.tintColor = self.navBarTintColor;
    }
    [navViewController pushViewController:frontViewController animated:NO];
    self.window.rootViewController = navViewController;
    • A menos que me estoy perdiendo algo, esta biblioteca bares no son translúcidos.
  12. -1

    Francamente hablando, por encima de las respuestas podría ser adecuado, pero siguiente truco funcionó para mí con facilidad.

    //this is complete 100% transparent image
    self.imageBlack = [[UIImage imageNamed:@"0102_BlackNavBG"] 
    resizableImageWithCapInsets:UIEdgeInsetsMake(0, 2, 0, 2)  
    resizingMode:UIImageResizingModeStretch];
    //this is non-transparent but iOS7 
    //will by default make it transparent (if translucent is set to YES)
    self.imageRed = [[UIImage imageNamed:@"0102_RedNavBG"] 
    resizableImageWithCapInsets:UIEdgeInsetsMake(0, 2, 0, 2)  
    resizingMode:UIImageResizingModeStretch];
    //some navigation controller
    [nvCtrLeft.navigationBar setBackgroundImage:self.imageRed 
    forBarMetrics:UIBarMetricsDefault];
    //some another navigation controller
    [nvCtrCenter.navigationBar setBackgroundImage:self.imageRed 
    forBarMetrics:UIBarMetricsDefault];

    Aquí están las imágenes que se utilizan para self.imageRed y self.imageBlack.

    < El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar > negro de la imagen es en este paréntesis no será visible ya que es transparente 🙂

    < El logro de brillantes, colores vivos para iOS 7 translúcido UINavigationBar > rojo de la imagen es en este corchetes.

    • Esto no le da el desenfoque.
  13. -1

    hay una manera de usar @aprato solución sin subclases UINavigationBar.

    En mi proyecto principal de mi punto de vista es un UIViewController.

    el problema es que la navigationController es una propiedad readonly, hay una manera de utilizar la clase con mi proyecto porque no puedo usar : [[UINavigationController alloc] initWithNavigationBarClass:

    gracias

    • No podía simplemente envuelva su UIViewController dentro de un UINavigationController con [[[UINavigationController alloc] initWithRootViewController:<YourViewController>]? Esto también puede ser mejor respondió como una cuestión separada, en lugar de publicar aquí.
  14. -2

    Una manera fácil de obtener el color que deseas es usar

        [<NAVIGATION_BAR> setBackgroundImage:<UIIMAGE> forBarPosition:<UIBARPOSITION> barMetrics:<UIBARMETRICS>];

    Mientras su imagen tiene algo de alfa, la translucidez va a funcionar y usted puede configurar el alfa por cambiar la imagen. Esto se acaba de agregar en iOS7. La anchura y la altura de la imagen son 640x88px vertical (agregar 20 a los 88 si quieres estar por debajo de la barra de estado).

    • Esto no retener el desenfoque sin embargo. No hay transparencia, pero sin desenfoque.

Dejar respuesta

Please enter your comment!
Please enter your name here