7

在 iOS7 中,默认情况下 UIBarButtonItem 对样式 UIBarButtonItemStylePlain 使用 Helvetica 常规粗细字体,对于 UIBarButtonItemStyleDone 使用粗体粗细。

我的应用程序使用自定义字体,我正在使用 UIAppearance 代理来实现这一点:

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

问题是,外观代理使 Plain 和 Done 样式的按钮成为我上面指定的常规粗细字体。

有什么想法可以让 UIBarButtonItem 根据样式使用不同的自定义字体粗细吗?

4

1 回答 1

3

我知道这是迟到的答案,但它可能对某人有所帮助:

   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];

已编辑:感谢您发现我的错字:-)

于 2014-01-22T13:55:35.103 回答