【发布时间】:2013-09-19 15:09:44
【问题描述】:
我正在使用 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,以便将字体设置为NSString UIKit Additions Reference 中描述的默认导航栏/barButtonItem 大小但是这个显然不再适用于 iOS 7。相反,将磅值设置为 0 将返回系统字体。
我仍然无法将titleTextAttributes 设置为
[UIBarButtonItem appearanceWhenContaintedIn:[UIToolbar class], nil]]
【问题讨论】:
-
你找到解决办法了吗?
-
不,从 iOS 7.1 开始,
[UIBarButtonItem appearance]仍然存在问题。将字典键更改为 NS 前缀或将调用移动到-viewDidLoad都没有解决问题。 ([UINavigationBar appearance]只要字体的磅值大于 0 就可以工作。)
标签: ios uikit uibarbuttonitem ios7 uiappearance