color bar ios iphone swift appdelegate

ios - bar - Cambiando titleTextAttribute en swift



uinavigationitem title color (5)

Desde que actualicé xcode no puedo cambiar el titleTextAttribute . Ahora cuando uso el siguiente código me sale este error:

No se pudo encontrar un inicio de sobrecarga que acepte estos argumentos proporcionados

Código en appDelegate :

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Ubuntu", size: 17), NSForegroundColorAttributeName:UIColor.whiteColor()] UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Ubuntu-Light", size: 15), NSForegroundColorAttributeName:UIColor.whiteColor()], forState: UIControlState.Normal)


Hubo un cambio reciente para que UIFont(name:size:) devuelva una instancia de UIFont opcional. Tendrás que desenvolverlos para que funcione. Utilizando ! es la forma más fácil, pero le provocará un bloqueo si la fuente no está en el sistema. Intenta algo como:

let navbarFont = UIFont(name: "Ubuntu", size: 17) ?? UIFont.systemFontOfSize(17) let barbuttonFont = UIFont(name: "Ubuntu-Light", size: 15) ?? UIFont.systemFontOfSize(15) UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: navbarFont, NSForegroundColorAttributeName:UIColor.whiteColor()] UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: barbuttonFont, NSForegroundColorAttributeName:UIColor.whiteColor()], forState: UIControlState.Normal)


Para Swift 3 puedes probar lo siguiente:

UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]


Swift 4:

if let navFont = UIFont(name: "Futura", size: 18) { let navBarAttributesDictionary: [NSAttributedStringKey: Any] = [ NSAttributedStringKey(rawValue: NSAttributedStringKey.foregroundColor.rawValue): UIColor(netHex: Colors.BabyBlue.rawValue), NSAttributedStringKey(rawValue: NSAttributedStringKey.font.rawValue): navFont ] UINavigationBar.appearance().titleTextAttributes = navBarAttributesDictionary }


Swift 4:

UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .normal) UINavigationBar.appearance().titleTextAttributes = [ NSAttributedStringKey.foregroundColor: UIColor.white ]


if let navFont = UIFont(name: "HelveticaNeue-Bold", size: 30.0) { let navBarAttributesDictionary: [NSObject: AnyObject]? = [ NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: navFont ] navigationController?.navigationBar.titleTextAttributes = navBarAttributesDictionary }