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

时间:2014-11-05 21:00:38

标签: objective-c ios8 uinavigationbar

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

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

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

谢谢!

修改

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

这些代码行在第30行的MasterViewController上。

2 个答案:

答案 0 :(得分:0)

分配属性时输入错误:

应该是:

self.navigationController.navigationBar.titleTextAttributes

而不是:

self.navigationController.navigationBar.TitleTextAttributes

如果这不能解决问题,您可以通过将此代码放入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);
}

答案 1 :(得分:0)

我使用的.ttf字体效果不佳。我安装了.otf版本,一切运行良好。