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



似乎用于设置 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

若要重现,请使用大纲-细节应用模板创建新应用。在以下位置添加上面的代码片段:

didFinishLaunchingWithOptions

您忘记设置Highlighted样式。

[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonAppearanceDict UIControlStateHighlighted];

最新更新