Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UINavigationBar custom font not working on iOS 8

I've spent some hours trying to use a custom font for the navigation bar title on iOS 8. This works ok on iOS 7:

UIFont *font = [UIFont fontWithName:@"Gotham-Bold" size:12];
NSDictionary *textAttributes = @{ NSFontAttributeName: font };
self.navigationController.navigationBar.titleTextAttributes = textAttributes;

But on iOS 8 the text simply disappears. Changing the color, or the system font size works perfectly, but trying to use a custom font won't work at all. Anyone has any idea on this?

Thanks!

EDIT

I've created a small project so you can try it yourself: https://github.com/noquepoaqui/customHeaderFont

These lines of code are on MasterViewController on line 30.

like image 996
Noquepoaqui Avatar asked Nov 05 '14 21:11

Noquepoaqui


1 Answers

You have a typo when you assign the attributes:

It should be:

self.navigationController.navigationBar.titleTextAttributes

instead of:

self.navigationController.navigationBar.TitleTextAttributes

If that doesn't fix the issue, you can test if the font was added correctly by placing this code in the AppDelegate's didFinishLoadingWithOptions. This will print all available fonts of your app. Just look at the output window and search for your font name (Gotham-Bold). If it's not listed you can delete the font from your project and add it again via drag & drop. Make sure to tick "add to target" next to your app in the dialog that appears.

//list all available fonts
for (NSString *family in [UIFont familyNames]) {
    NSLog(@"---------- %@ ----------", family.uppercaseString);
    NSArray *names = [UIFont fontNamesForFamilyName:family];
    for (NSString *font in names) NSLog(@"%@", font);
}
like image 144
Hannes Avatar answered Oct 02 '22 03:10

Hannes