web-dev-qa-db-fra.com

Modification de la couleur de police de UIBarButtonItem

J'ai essayé de changer la couleur de la police de l'élément de bouton de la barre de droite en violet, mais elle apparaît toujours en blanc. J'ai consulté ce question et ce question . Comment puis-je réparer ça?

Code

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
12
Alex

Qu'en est-il de l'utilisation:

func setTitleColor(UIColor?, for: UIControlState)

La documentation indique qu'elle définit la couleur du titre à utiliser pour l'état spécifié.

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

Cela devrait faire l'affaire (si vous avez du texte brut)

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

navigationItem.rightBarButtonItem = rightBarButtonItem
23
Kristijan Delivuk

Veuillez essayer ceci

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

C'est simple, il suffit de créer une référence pour UIBarButtonItem de Main.stroyboard au fichier correspondant Swift comme celui-ci,

@IBOutlet var yourBarBtn: UIBarButtonItem!

Après cela, écrivez cette ligne,

yourBarBtn.tintColor = .white //your_color

C'est tout!

2
Kaushal Topinkatti