更改UIBarButtonItem的字体颜色

20

我试图将右侧导航栏按钮项的字体颜色更改为紫色,但它仍然显示为白色。我查看了这个问题和这个问题。我该如何解决?

代码

let sortButton = UIButton(frame: CGRect(x: 0, y: 0, width: 34, height: 15))
    sortButton.setTitle("SORT", for: .normal)
    sortButton.titleLabel?.tintColor = UIColor.myMusicPurple
    sortButton.tintColor = UIColor.myMusicPurple        
    navigationItem.rightBarButtonItem =  UIBarButtonItem(customView: sortButton)
    navigationItem.rightBarButtonItem?.tintColor = UIColor.myMusicPurple
5个回答

36

这应该可以解决问题(如果你有纯文本)

let rightBarButtonItem = UIBarButtonItem(title: "Some text", style: .plain, target: self, action: #selector(someAction))
rightBarButtonItem.tintColor = UIColor.myMusicPurple

navigationItem.rightBarButtonItem = rightBarButtonItem

10
请尝试这个。
sortButton.setTitleTextAttributes([NSAttributedStringKey.foregroundColor : UIColor.white], for: .normal)

7
很简单,只需在Main.stroyboard中为UIBarButtonItem创建一个引用,然后将其对应到Swift文件中,就像这样:
@IBOutlet var yourBarBtn: UIBarButtonItem!

接着写下这行代码,

yourBarBtn.tintColor = .white //your_color

就是这样!

4
首先,您需要设置纯文本属性,然后才可以像写作一样进行编写。

这是图片描述

  @IBOutlet weak var btnGenerate: UIBarButtonItem!

  btnGenerate.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor.colorBlue], for: .normal)

1
使用什么呢?

func setTitleColor(UIColor?, for: UIControlState)

文档中说明它设置指定状态下使用的标题颜色。
sortButton.setTitleColor( .red, for: .normal)

9
这不应该成为被接受的答案。 UIBarButtonItem 没有 setTitleColor 方法。正确的答案是使用 tintColor - JaredH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接