ios 7 UIBarButtonItem UIAppearance没有设置字体

时间:2013-11-08 13:55:42

标签: ios7 uibarbuttonitem uiappearance

我正在使用这段代码为我的所有UIBarButtonItem设置默认字体(自定义):

NSDictionary *attributesBarButtonItem = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"ProximaNova-Light" size:18.0], NSFontAttributeName, nil];
[[UIBarButtonItem appearance] setTitleTextAttributes:attributesBarButtonItem forState:UIControlStateNormal];

NSLog(@"%@", [[UIBarButtonItem appearance] titleTextAttributesForState:UIControlStateNormal]);

但是,它似乎被忽略,因为字体没有改变,NSLog返回(null)。它有点令人困惑,因为它几乎与我用来为我的所有导航栏设置默认字体的代码相同,并且它适用于它们。

这段代码放在AppDelegate的didFinishLaunchingWithOptions中,但我也在其他viewControllers(viewDidLoad)中测试它,结果完全相同。

我注意到的其他奇怪行为: 我有一个标签栏控制器,当我加载任何带有条形按钮项的viewController它不起作用,但如果我推另一个viewController它工作(字体更改为选定的一个),它仍然保持工作,即使该viewController会弹出,但如果按下另一个标签,它将停止工作。

任何帮助尝试为UIBarButtonItem设置默认字体都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

这是您的自定义字体吗?

可能没什么问题:

  • 是TTF格式的字体吗?
  • 如果您点击xcode中的字体是右侧面板中的目标会员资格吗?
  • 您是否将字体添加到项目plist文件中? enter image description here

您还应该在字典中使用 UITextAttributeFont

[UIBarButtonItem appearance] setTitleTextAttributes:@{UITextAttributeFont:[UIFont fontWithName:@"ProximaNova-Light" size:18.0]} [forState:forState:UIControlStateNormal];