如何更改UIBarButtonitem的字体颜色?

时间:2010-07-22 22:33:16

标签: iphone objective-c cocoa-touch interface-builder uibarbuttonitem

我想将颜色更改为红色。

6 个答案:

答案 0 :(得分:103)

我找到了一种更简单的方法来改变标题的颜色: iOS7:

UIBarButtonItem *button = 
 [[UIBarButtonItem alloc] initWithTitle:@"Title" 
                                  style:UIBarButtonItemStyleBordered 
                                 target:nil 
                                 action:nil];
[button setTitleTextAttributes:
          [NSDictionary dictionaryWithObjectsAndKeys: 
               [UIColor redColor], NSForegroundColorAttributeName,nil] 
                                            forState:UIControlStateNormal];

以及之前的iOS7:

UIBarButtonItem *button = 
  [[UIBarButtonItem alloc] initWithTitle:@"Title" 
                                   style:UIBarButtonItemStyleBordered 
                                  target:nil 
                                  action:nil];
[button setTitleTextAttributes:
          [NSDictionary dictionaryWithObjectsAndKeys: 
               [UIColor redColor], UITextAttributeTextColor,nil] 
                                    forState:UIControlStateNormal];

答案 1 :(得分:8)

here回答了这个问题。基本上,您必须创建一个UIButton,根据需要进行配置,然后使用UIButton作为自定义视图初始化Bar Button Item。

答案 2 :(得分:8)

有两种方法可以更改显示的文本UIBarButtonITem的颜色。

1)

[barButtonITem setTintColor:[UIColor redColor]];

2)或者你可以使用任何UIColor类方法。这是非常有效的解决方案。对于iOS 7,你可以使用NSForegroundColorAttributeName并且可以使用

barButtonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor clearColor],NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];

答案 3 :(得分:3)

在Guvvy Ava的类似说明中,您可以更改字体大小,如

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

答案 4 :(得分:1)

swift 4.0或更高版本

barButtonITem.tintColor = UIColor.red   // for textColor change

如果想要更改字体和文本颜色,请使用以下代码

barButtonITem.setTitleTextAttributes([NSAttributedStringKey.foregroundColor :UIColor.red,NSAttributedStringKey.font:UIFont.init(name:"Avenir", size:15.0)], for: UIControlState.normal)

答案 5 :(得分:0)

如果您正在使用系统导航栏按钮项,则使用

更改按钮色调颜色
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

要更改按钮文字颜色,请使用以下代码。

[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]} forState:UIControlStateNormal];

添加以下代码行,您想要更改颜色的视图控件