¿Puedo cambiar la fuente de mi UINavigationController? ->títuloCambiar la fuente del título UINavigationController
Respuesta
La vista del título puede ser cualquier vista. Así que simplemente cree un UILabel u otra cosa donde cambie la fuente y asigne esa nueva vista a la propiedad del título del elemento de navegación.
Un ejemplo:
-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
CGRect frame = CGRectMake(0, 0, 400, 44);
UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];
label.backgroundColor = [UIColor clearColor];
label.font = [FontHelper fontFor:FontTargetForNavigationHeadings];
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.text = self.navigationItem.title;
// emboss in the same way as the native title
[label setShadowColor:[UIColor darkGrayColor]];
[label setShadowOffset:CGSizeMake(0, -0.5)];
self.navigationItem.titleView = label;
}
+1 para esto. Si viewControllers en la pila requiere una fuente diferente para el título, entonces '[UINavigationBar apariencia]' no puede hacer el trabajo. Un título personalizado es el único método. – BabyPanda
es mejor poner este código en viewDidLoad, de lo contrario, cada vez que aparezca la vista en la jerarquía, se creará titleView y su trabajo innecesario en el sistema – raw3d
A partir de iOS 5 se puede cambiar la fuente a través del proxy apariencia.
https://developer.apple.com/documentation/uikit/uiappearance
El siguiente será establecer la fuente del título para todos los UINavigationControllers.
NSMutableDictionary *titleBarAttributes = [NSMutableDictionary dictionaryWithDictionary: [[UINavigationBar appearance] titleTextAttributes]];
[titleBarAttributes setValue:[UIFont fontWithName:@"Didot" size:16] forKey:NSFontAttributeName];
[[UINavigationBar appearance] setTitleTextAttributes:titleBarAttributes];
para establecer la fuente para el botón de retroceso, hacer esto:
NSMutableDictionary *attributes = [NSMutableDictionary dictionaryWithDictionary: [[UIBarButtonItem appearance] titleTextAttributesForState:UIControlStateNormal]];
[attributes setValue:[UIFont fontWithName:@"Didot" size:12] forKey:NSFontAttributeName];
[[UIBarButtonItem appearance] setTitleTextAttributes:attributes forState:UIControlStateNormal];
iOS 7 desaprobó la clave: UITextAttributeFont (leer, no usar esto) y ahora utiliza la clave: NSFontAttributeName en su lugar. Funciona de maravilla y hace que mi aplicación se vea muchísimo mejor. ¡Gracias! –
En cada controlador de vista individual también puede establecer los atributos de texto de título en la instancia de la barra de navegación actual para personalizar el aspecto allí, como este fragmento de código: [self.navigationController.navigationBar setTitleTextAttributes: @ {NSFontAttributeName: [UIFont fontWithName: @ " Palatino-Bold "tamaño: 28], NSForegroundColorAttributeName: [UIColor whiteColor]}]; – CodePlumber
para iOS8 + que puede utilizar:
[self.navigationController.navigationBar setTitleTextAttributes:@{ NSFontAttributeName: [UIFont fontWithName:@"MyFont" size:18.0f],
NSForegroundColorAttributeName: [UIColor whiteColor]
}];
Gracias esto me dio la dirección correcta para implementar una fuente personalizada con swift: self.navigationController? .navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont (nombre: "MyFont", tamaño: 18.0)!] – NBoymanns
¡Gracias, amigo! Resuelto. – Felipe
Siempre triste al probar primero todas las respuestas anteriores solo para descubrir que la de abajo es la más moderna \: – hashier
La respuesta de @morgancodes establecerá el tipo de letra para todos UINavigationController
títulos. He puesto al día por Swift 4:
let attributes = [NSAttributedStringKey.font: UIFont(name: "Menlo", size: 14) as Any]
UINavigationBar.appearance().titleTextAttributes = attributes
UIBarButtonItem.appearance().setTitleTextAttributes(attributes, for: .normal)
- 1. cambiar la fuente del botón Atrás de UINavigationController
- 2. ¿Cambiar las propiedades de la fuente UINavigationBar?
- 3. Establecer el título UITabBarItem desde UINavigationController?
- 4. El título UINavigationController no se muestra?
- 5. ¿Cómo cambiar la fuente del encabezado de TabItem sin cambiar la fuente del contenido?
- 6. Cambiar la animación de UINavigationController NavigationBar
- 7. ¿Hay alguna manera de cambiar el tamaño de la fuente del título en una hoja UIActionSheet?
- 8. QTabWidget establece la fuente del título de una sola pestaña
- 9. Cambiar la fuente del área de texto
- 10. Cambiar la fuente predeterminada del código github
- 11. Cambiar el título del eje HighCharts
- 12. Barra de navegación Título Tamaño de fuente
- 13. Cambiar el tamaño de la fuente del título de la leyenda en el diagrama Python Rose Rose/Polar
- 14. ¿Cómo cambiar la fuente de la tecla del teclado Android?
- 15. Cambiar el título con Javascript
- 16. jQuery Tooltip Herramientas - Cambiar título
- 17. usando UINavigationBar sin UINavigationController
- 18. UIViewController configuración predeterminada de fuente de título
- 19. UINavigationController dentro de UITabBarController, configurando el título del controlador de navegación
- 20. Cómo cambiar la fuente del valor del eje en un JFreeChart
- 21. Cambiar la fuente de JLabel
- 22. ¿Cambiar la fuente en Aquamacs?
- 23. ¿Cómo puedo cambiar la fuente del encabezado de JTable?
- 24. Jquery: ¿Es posible cambiar dinámicamente la fuente del widget Autocompletar?
- 25. ¿Cómo cambiar el tamaño de la fuente del nombre del elemento del controlador de la barra de pestañas?
- 26. Cambiar el color del título principal de navegación en MFMailComposeViewController
- 27. ¿Cómo puedo cambiar el color del título de UIButton?
- 28. Cómo cambiar el tipo de letra del título principal en la parcela()
- 29. Ajuste la posición y el tamaño de fuente del título de la leyenda en ggplot2
- 30. UINavigationController Estilo
Eso es una gran idea, pero tengo un problema ahora, .. Cuando agrego mi UILabel mis controles (como AddButton) en el UINavigationController no es visible más , .. * hm * –
Lo arreglé, por mi cuenta .. lo siento por mal entendido;) –
si esto solucionó el problema, no olvides aceptar la solución provista en la respuesta – Erik