Reputation: 51
I am using swift 2 and the newest version of Xcode and I am trying to change the font size, name, and color of the Title Text in every Navigation Bar. I wrote the following code in my AppDelegate
section in the didFinishLaunchingWithOptions
area but it only changes the color, the size or type of font is not affected. When I get rid of the color line, then the title follows the NSFontAttributeName
line. Is there a way to have both lines of code perform? I haven't found anything that allows you to change both in code...
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
UIApplication.sharedApplication().statusBarStyle = .LightContent
UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: (UIFont(name: "AvenirNext-DemiBold", size: 50.0))!]
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor(red: 244/255, green: 234/255, blue: 166/255, alpha: 1.0)]
return true
}
Upvotes: 1
Views: 436
Reputation: 534925
Your code is silly. You set the titleTextAttributes
and then you throw away the value you just set and replace it with another value!
UINavigationBar.appearance().titleTextAttributes =
[NSFontAttributeName: (UIFont(name: "AvenirNext-DemiBold", size: 50.0))!]
UINavigationBar.appearance().titleTextAttributes =
[NSForegroundColorAttributeName : UIColor(red: 244/255, green: 234/255, blue: 166/255, alpha: 1.0)]
If that's not what you want to do, set the titleTextAttributes
to just one value, i.e. a dictionary consisting of both settings:
UINavigationBar.appearance().titleTextAttributes = [
NSFontAttributeName: (UIFont(name: "AvenirNext-DemiBold", size: 50.0))!,
NSForegroundColorAttributeName : UIColor(red: 244/255, green: 234/255, blue: 166/255, alpha: 1.0)
]
Upvotes: 2