UIBarButtonItem外观代理设置字体属性在iOS 11中不起作用

时间:2018-04-12 19:38:38

标签: ios objective-c uikit

似乎用于设置UIBarButtonItem字体的iOS 11外观代理机制不能完全正常工作。 (它在iOS 10中表现得如预期的那样)。

我想知道这是不是一个错误,或者有某种不同的方式来做到这一点。

我的代码:

NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:24], NSForegroundColorAttributeName: [UIColor purpleColor]};
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonAppearanceDict forState:UIControlStateNormal];

基本上,代码似乎有效,按钮字体的样式适当。但是,当用户点击按钮时,按下按钮时样式将恢复。

这是一段视频:

https://www.dropbox.com/s/hqgpbnlq6gw884p/UIBarButtonItem%20Interaction.mov?dl=0

要重新制作,请使用Master-Detail应用模板创建新应用。在上面添加代码段:

didFinishLaunchingWithOptions

1 个答案:

答案 0 :(得分:2)

您忘记设置Highlighted样式。

[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonAppearanceDict UIControlStateHighlighted];