如何更改UIBarButtonItem的字体?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我我的UIToolbar中有一个名为“Done”的UIBarButtonItem。现在我想用粗体将字体从默认更改为“Trebuchet MS”。

提问于
用户回答回答于

由于UIBarButtonItem继承自UIBarItem,因此可以尝试

- (void)setTitleTextAttributes:(NSDictionary *)attributes
                  forState:(UIControlState)state

但这仅适用于iOS5。对于iOS 3/4,用自定义视图。

用户回答回答于

可以按照以下方式完成

[buttonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
    [UIFont fontWithName:@"Helvetica-Bold" size:26.0], NSFontAttributeName,
    [UIColor greenColor], NSForegroundColorAttributeName,
    nil] 
                          forState:UIControlStateNormal];

或者使用对象字面值语法:

[buttonItem setTitleTextAttributes:@{
     NSFontAttributeName: [UIFont fontWithName:@"Helvetica-Bold" size:26.0],
     NSForegroundColorAttributeName: [UIColor greenColor]
} forState:UIControlStateNormal];

为了方便,以下是Swift实现:

buttonItem.setTitleTextAttributes([
        NSFontAttributeName: UIFont(name: "Helvetica-Bold", size: 26.0)!,
        NSForegroundColorAttributeName: UIColor.greenColor()],
    forState: UIControlState.Normal)

扫码关注云+社区