objective-c - UINavigationBar 自定义字体不适用于 iOS 8

标签 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

这几行代码在 MasterViewController 的第 30 行。

最佳答案

分配属性时有错别字:

应该是:

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);
}

关于objective-c - UINavigationBar 自定义字体不适用于 iOS 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26767019/

相关文章:

TableView 导航栏上的 IOS 按钮不起作用

iphone - UITableView 查找部分标题的位置?

objective-c - iap - 从 objective c 到 swift 的转换

ios - iOS 上的多个用户

uinavigationbar - 带有列表的 SwiftUI 自定义导航栏

ios - 如何检测UIBarButtonitem中的长按

iphone - 推荐用于处理四元数矩阵向量等的 objective-c 数学库

ios - 在 UITableViewCell 内动画 UILabel 文本更改

ios - 从 Collection View Xcode 中删除 Collection View Cell

IOS 警报未启动/单击警报转到下一页 SWIFT