ios swift - El título de NavigationBar viene en color negro





title titletextattributes (6)


Pruebe esto en AppDelegate:

[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];

Estoy usando un UINavigationBar en mi aplicación con UITabBar . En la primera pestaña, el título de la barra de navegación viene correctamente como un título blanco con el color de fondo predeterminado, pero en la segunda pestaña no funciona de la misma manera. No estoy usando ningún código para cambiar el color del título o tintColor la barra de tintColor .

Primera vista:
http://img407.imageshack.us/img407/7192/4go.png

Segunda vista: http://img824.imageshack.us/img824/4493/idtk.png

¿Por qué el título UINavigationBar la segunda vista está dibujado en este color negro?




En general, no puede cambiar el color predeterminado del Título UINavigationBar . En caso de Si desea cambiar el color del Título UINavigationBar de lo que necesita para personalizar UINavigationBar. así que ponga el código para su segundo ViewController para obtener más información.

EDITAR:

Después de buscar, encontré que puedes cambiar el color del título de UINavigationBar por

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor];

Este código está funcionando en iOS5 y más tarde.




Utilice este fragmento de código para iOS7 ya que UITextAttributeTextColor ha quedado en desuso.

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor orangeColor] forKey:NSForegroundColorAttributeName];



Esto te permitirá cambiar los colores

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                        [UIColor whiteColor],UITextAttributeTextColor, 
                                        [UIColor blackColor],      UITextAttributeTextShadowColor, 
                                        [NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil];

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];



Este código cambia el texto de toda la barra de navegación, con este código el texto se puede personalizar al 100%.

en la aplicaciónDelegar:

 //custom text navBar
   [[UINavigationBar appearance] setTitleTextAttributes: 
   [NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithRed:0x73/255.0 green:0x47/255.0 blue:0x41/255.0 alpha:1.0], UITextAttributeTextColor,
   [UIColor colorWithRed:0x1D/255.0 green:0x1D/255.0 blue:0x1B/255.0 alpha:1], UITextAttributeTextShadowColor,
   [NSValue valueWithUIOffset:UIOffsetMake(0, 1)],UITextAttributeTextShadowOffset, 
   [UIFont fontWithName:@"yourFont" size:20], UITextAttributeFont, nil]];



No tiene que calcular a qué distancia se puede desplazar todo, hay una estructura de propiedad para esto. En Interface Builder, resalte su controlador de vista y luego navegue hasta el inspector de atributos. Aquí verá algunas casillas de verificación junto a las palabras "Extender bordes". Como puede ver, en la primera captura de pantalla, la selección predeterminada es que el contenido aparezca debajo de las barras superior e inferior, pero no debajo de las barras opacas, por lo que configurar el estilo de la barra para que no sea translúcido funcionó para usted.

Como se puede ver en la primera captura de pantalla, hay dos elementos de la interfaz de usuario ocultos debajo de la barra de navegación. (He habilitado wireframes en IB para ilustrar esto) Estos elementos, un UIButton y un UISegmentedControl tienen su origen "y" establecido en cero, y el controlador de vista está configurado para permitir contenido debajo de la barra superior.

Esta segunda captura de pantalla muestra lo que sucede cuando deselecciona la casilla de verificación "Debajo de las barras superiores". Como puede ver, la vista de los controladores de vista se ha desplazado hacia abajo de manera adecuada para que su origen se encuentre justo debajo de la barra de navegación.

Esto también se puede realizar mediante programación mediante el uso de -[UIViewController edgesForExtendedLayout] . Aquí hay un enlace a la referencia de clase para edgeForExtendedLayout , y para UIRectEdge

[self setEdgesForExtendedLayout:UIRectEdgeNone];




ios iphone cocoa-touch uinavigationcontroller