【问题标题】:How can I change the font color of a UIBarButton item?如何更改 UIBarButton 项的字体颜色?
【发布时间】:2011-03-19 20:19:46
【问题描述】:

我想把颜色改成红色。

【问题讨论】:

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


【解决方案1】:

我找到了一种更简单的方法来更改标题的颜色: 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];

【讨论】:

  • 如果您是 iOS 5.0 或更高版本,这当然是一个很好的解决方案。 OP:查看 UIBarItem.h 了解详情。
  • 我一直在寻找如何更改文本颜色的方法,非常感谢!!幸运的是,现在大多数手机都在 IOS5 上,所以这不是一个真正的问题
  • 我已经为 iOS7 修复了这个答案
  • 适用于 iOS7。谢谢老兄!
  • 谢谢@Gavy,它工作正常。你能告诉我如何改变标题的字体吗?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    有两种方法可以改变 UIBarButtonITem 显示的 Text 的颜色。

    1)

    [barButtonITem setTintColor:[UIColor redColor]];
    

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        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)
        

        【讨论】:

          【解决方案6】:

          如果您使用的是系统导航栏按钮项目,则使用更改按钮色调颜色

          self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
          

          要更改按钮文本颜色,也可以使用以下代码。

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

          添加以下代码行您要更改颜色的视图控制器

          【讨论】:

            猜你喜欢
            • 2021-09-20
            • 1970-01-01
            • 2015-05-18
            • 2011-05-20
            • 2012-02-20
            • 2011-06-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多