web-dev-qa-db-ja.com

UIBarButtonItemのフォント色を変更する

右バーのボタン項目のフォントの色を紫に変更しようとしましたが、それでも白く表示されます。私はこれ question とこれ question を調べました。どうすれば修正できますか?

コード

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

使用について:

func setTitleColor(UIColor?, for: UIControlState)

ドキュメントには、指定された状態に使用するタイトルの色が設定されていると記載されています。

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

これでうまくいくはずです(プレーンテキストの場合)

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

navigationItem.rightBarButtonItem = rightBarButtonItem
23

これをお試しください

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

その単純な方法は、Main.storyboardから対応するSwiftファイルへのUIBarButtonItemの参照を作成するだけです。

@IBOutlet var yourBarBtn: UIBarButtonItem!

その後、この行を書きます、

yourBarBtn.tintColor = .white //your_color

それでおしまい!

2