ios - tamaño - Cómo cambiar la fuente y el color del texto del título de UINavigationBar
como poner texto en imovie para mac (5)
Quiero cambiar la fuente del título a Avenir, y quiero que sea blanco. Aquí está mi código en el método viewDidLoad
:
UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Avenir", size: 20)!]
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
Este código solo cambia el color del título, no la fuente. Además, traté de implementar esto en el archivo de delegado de aplicaciones, pero eso no funcionó.
Aquí es cómo se ve mi UINavigationBar:
Quiero que el título tenga también una fuente de Avenir. ¿Cómo logro esto?
En caso de que alguien necesite esto en Swift 4 :
let navBarAppearance = UINavigationBar.appearance()
navBarAppearance.barTintColor = .red
navBarAppearance.tintColor = .white
navBarAppearance.titleTextAttributes = [
NSAttributedString.Key.foregroundColor: UIColor.white,
NSAttributedString.Key.font: UIFont(name: "Avenir", size: 20)!]
Me gustaría crear una salida y hacer esto:
@IBOutlet weak var navigationBar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Avenir", size: 30)!]
}
Si desea que los estilos se apliquen en toda la aplicación, agregue estas líneas en el archivo AppDelegate.m.
NSShadow* shadow = [NSShadow new];
shadow.shadowOffset = CGSizeMake(0.0f, 0.0f);
shadow.shadowColor = [UIColor blackColor];
[[UINavigationBar appearance] setTitleTextAttributes: @{
NSForegroundColorAttributeName: [UIColor whiteColor],
NSFontAttributeName: [UIFont fontWithName:@"Kelvetica Nobis" size:20.0f],
NSShadowAttributeName: shadow
}];
NSForegroundColorAttributeName establece el color de fuente.
NSFontAttributeName establece una cara de fuente personalizada para el texto del título.
NSShadowAttributeName aplica un bonito efecto de sombra al texto, puede eliminar esta parte si lo desea.
También de antemano, puede agregar estas líneas para ocultar el texto que aparece en el botón Atrás en la barra de acción cuando navega a otra vista dentro del controlador de navegación.
[[UIBarButtonItem appearance]
setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000, -1000)
forBarMetrics:UIBarMetricsDefault];
Espero que esto ayude a su pregunta :)
Su código está bien, solo necesita configurar todos los titleTextAttributes
de titleTextAttributes
de titleTextAttributes
en una línea:
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white , NSFontAttributeName: UIFont(name: "Avenir", size: 17)!]
Yo uso esto:
Actualización, parece que esto es necesario también:
self.navigationController?.navigationBar.barStyle = UIBarStyle.Black // I then set the color using:
self.navigationController?.navigationBar.barTintColor = UIColor(red: 204/255, green: 47/255, blue: 40/255, alpha: 1.0) // a lovely red
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor() // for titles, buttons, etc.
let navigationTitleFont = UIFont(name: "Avenir", size: 20)!
self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: navigationTitleFont]