UINavigationBar自定义字体在iOS 8上不起作用

Noq*_*qui 7 objective-c uinavigationbar ios8

我花了几个小时尝试在iOS 8上使用自定义字体作为导航栏标题.这在iOS 7上运行正常:

UIFont *font = [UIFont fontWithName:@"Gotham-Bold" size:12];
NSDictionary *textAttributes = @{ NSFontAttributeName: font };
self.navigationController.navigationBar.titleTextAttributes = textAttributes;
Run Code Online (Sandbox Code Playgroud)

但在iOS 8上,文本消失了.更改颜色或系统字体大小可以很好地工作,但尝试使用自定义字体根本不起作用.有人对此有任何想法吗?

谢谢!

编辑

我创建了一个小项目,你可以自己试试:https: //github.com/noquepoaqui/customHeaderFont

这些代码行位于第30行的MasterViewController上.

Han*_*nes 1

分配属性时出现拼写错误:

它应该是:

self.navigationController.navigationBar.titleTextAttributes
Run Code Online (Sandbox Code Playgroud)

代替:

self.navigationController.navigationBar.TitleTextAttributes
Run Code Online (Sandbox Code Playgroud)

如果这不能解决问题,您可以通过将此代码放入 AppDelegate 的didFinishLoadingWithOptions. 这将打印您的应用程序的所有可用字体。只需查看输出窗口并搜索您的字体名称(Gotham-Bold)即可。如果未列出,您可以从项目中删除该字体,然后通过拖放再次添加。确保在出现的对话框中勾选您的应用程序旁边的“添加到目标”。

//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);
}
Run Code Online (Sandbox Code Playgroud)