微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在iOS7中,使用UIAppearance代理时,UIBarButtonItems不尊重粗体“完成”样式

在iOS7中,认情况下,UIBarButtonItem对样式UIBarButtonItemStylePlain使用Helvetica常规权重字体,对UIBarButtonItemStyleDone使用粗体.

我的应用程序使用自定义字体,我使用UIAppearance代理来实现此目的:

appearance = @{NSFontAttributeName: [UIFont fontWithName:@"ProximaNova-Regular" size:18.0]};
[[UIBarButtonItem appearance] setTitleTextAttributes:appearance
                                            forState:UIControlStatenormal];

麻烦的是,外观代理使Plain和Done样式按钮成为我上面指定的常规重量字体.

任何想法如何让UIBarButtonItem根据样式使用不同的自定义字体权重?

解决方法

我知道这是迟到的答案,但它对某些人有帮助:
UIBarButtonItem *customBarButton =
        [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"CustomTitle",@"This button appears in my smexy ViewController's naviagtion bar")
                                         style:UIBarButtonItemStylePlain
                                        target:self
                                        action:@selector(customButtonDidClick:)];

    NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"TimesNewRomanPS-BoldMT" size:14.0f],NSForegroundColorAttributeName: [UIColor redColor]}; // here you can add some other keys (especially in iOS 7) to personalize your button title more 

    [customBarButton setTitleTextAttributes:attributes forState:UIControlStatenormal];

    [self.navigationItem setRightBarButtonItem:customBarButton];

编辑:感谢您检测我的拼写错误:-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐