我正在使用这段代码为我的所有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设置默认字体都将不胜感激。谢谢!
答案 0 :(得分:2)
这是您的自定义字体吗?
可能没什么问题:
您还应该在字典中使用 UITextAttributeFont :
[UIBarButtonItem appearance] setTitleTextAttributes:@{UITextAttributeFont:[UIFont fontWithName:@"ProximaNova-Light" size:18.0]} [forState:forState:UIControlStateNormal];