更改UIBarButtonItem的字体颜色

时间:2017-07-03 20:04:57

标签: swift uibutton uinavigationbar uibarbuttonitem uicolor

我尝试将右侧栏按钮项的字体颜色更改为紫色,但仍显示为白色。我已经咨询了这个questionquestion。我该如何解决这个问题?

代码

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 个答案:

答案 0 :(得分:20)

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

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

navigationItem.rightBarButtonItem = rightBarButtonItem

答案 1 :(得分:7)

如何使用:

func setTitleColor(UIColor?, for: UIControlState)

文档说它设置了用于指定状态的标题的颜色。

sortButton.setTitleColor( .red, for: .normal)

答案 2 :(得分:4)

请用户

sortButton.setTitleTextAttributes([NSAttributedStringKey.foregroundColor : UIColor.white], for: .normal)

答案 3 :(得分:2)

这很简单,只需从Main.stroyboard创建UIBarButtonItem的引用到这样的相应swift文件,

@IBOutlet var yourBarBtn: UIBarButtonItem!

在那之后写这行,

yourBarBtn.tintColor = .white //your_color

就这样!

答案 4 :(得分:0)

首先,您需要设置普通属性,然后才能编写类似的内容。

enter image description here

  @IBOutlet weak var btnGenerate: UIBarButtonItem!

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