我正在使用UIAppearance将字体应用于UINavigationBar和UIBarButtonItem,但是遇到了问题。我运行了这段代码:
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil]
setTitleTextAttributes:
@{NSFontAttributeName : [UIFont fontWithName:@"My_Font" size:17.0]}
forState:UIControlStateNormal];
NSLog(@"%@", [[UIBarButtonItem appearanceWhenContainedIn:
[UIToolbar class], nil] titleTextAttributesForState:UIControlStateNormal]);
在iOS 7上的日志结果是:
(null)
iOS 6中的结果为:
{
NSFont = "<UICFFont: 0x1d897a80> font-family: \"My_Font\"; font-weight: normal; font-style: normal; font-size: 17px";
}
我在iOS 7文档中找不到任何迹象表明这样做无效,有其他人遇到过这个问题吗?
编辑1
实际上,我已经通过[UINavigationBar appearance]
让它工作了。问题在于,我把点大小设置为0,以便将字体设置为默认的navbar / barButtonItem大小,如NSString UIKit Additions Reference所述,但是这在iOS 7中显然不起作用。 相反,将点大小设置为0将返回系统字体。
我仍然无法将titleTextAttributes
设置为
[UIBarButtonItem appearanceWhenContaintedIn:[UIToolbar class], nil]]
[UIBarButtonItem appearance]
仍然存在问题。无论是将字典键更改为NS前缀还是将调用移动到-viewDidLoad
中都不能解决问题。只要字体的大小大于0,[UINavigationBar appearance]
就可以正常工作。 - LOP_Luke