Sé cómo cambiar la UINavigationBar
imagen de fondo haciendo
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nabbar"] forBarMetrics:UIBarMetricsDefault];
y sé cómo establecer la barra en diferentes colores dentro de cada uno Views
..... Ahora quiero cambiar el color de fondo sin usar una imagen a un color sólido del app delegate
. No quiero configurarlo cada vez desde cada vista y no quiero escribir un CGRect
.
Lo intenté [[UINavigationBar appearance] setBackgroundColor:[UIColor colorWithRed:33/255.0 green:34/255.0 blue:36/255.0 alpha:1.0]];
pero no funcionó y no puedo encontrar un código en ninguna parte que funcione en el delegado de la aplicación.
¿Alguien podría señalarme en la dirección correcta?
fuente
tintColor
el gradiente se quedará. Si no desea tener este degradado, necesita subclasificar su UINavigationBar O para hacer un UIImage para la apariencia.navigationBar.barTintColor = myColor;
translucent
La propiedad simplemente no se puede configurar usando UIAppearance en iOS 6 y iOS 7. Por[[UINavigationBar appearance] setTranslucent:NO]
lo tanto , la aplicación se bloqueará con unNSInvalidArgumentException
error. Utilice[self.navigationController.navigationBar setTranslucent:NO]
o anule la selección de la transparencia mediante IB.UINavigationBar.appearance().barTintColor = myColor
UINavigationBar.appearance().isTranslucent = false
Para cambiar el color de fondo y no el tinte, el siguiente código funcionará:
fuente
UIViewControllers
, mientras que esta mostrará efectos cada vez que se llame.Para hacer esto en iOS 7:
fuente
Sintaxis rápida:
Acabo de poner eso en AppDelegate didFinishLaunchingWithOptions y persiste en toda la aplicación
fuente
Rápido :
fuente
Puede hacer esto fácilmente con Xcode 6.3.1. Seleccione su barra de navegación en el esquema del documento. Seleccione el inspector de atributos. Desmarque Translúcido. Establezca Bar Tint en el color deseado. ¡Hecho!
fuente
Como mencionan las otras respuestas, puede usar
setTintColor:
, pero desea un color sólido y no es posible configurar el color del tinte AFAIK.La solución es crear una imagen mediante programación y establecer esa imagen como imagen de fondo para todas las barras de navegación a través de
UIAppearance
. Acerca del tamaño de la imagen, no estoy seguro de si una imagen de 1x1 píxeles funcionaría o si necesita el tamaño exacto de la barra de navegación. Consulte la segunda respuesta de esta pregunta para ver cómo crear la imagen.Como consejo, no me gusta "sobrecargar" al delegado de la aplicación con este tipo de cosas. Lo que tiendo a hacer es crear una clase nombrada
AppearanceConfiguration
con un solo método públicoconfigureAppearance
donde configuro todas las cosas de UIAppearance que quiero, y luego llamo a ese método desde el delegado de la aplicación.fuente
Puede establecer el color de fondo de UINavigation utilizando este código en cualquier controlador de vista
fuente
En Swift 4.2 y Xcode 10.1
Puede cambiar el color de la barra de navegación desde su AppDelegate directamente a todo su proyecto.
En
didFinishLaunchingWithOptions launchOptions:
escribir a continuación a las líneas de códigoaquí
tintColor es para establecer imágenes de fondo como el botón de retroceso y las imágenes de las líneas de menú, etc.
barTintColor es para el color de fondo de la barra de navegación
Si desea establecer el color de la barra de navegación del controlador de vista específico, escriba el código siguiente en
viewDidLoad()
fuente
El código de color es el problema aquí. En lugar de usar 195/255, use 0.7647 o 195.f / 255.f El problema es que la conversión del flotador no funciona correctamente. Intente usar el valor flotante exacto.
fuente