我花了几个小时尝试在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上.
解决方法
分配属性时有拼写错误:
它应该是:
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); }