UIButtonタイトルテキストの色


回答:


438

使用する

Objective-C

[headingButton setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];

迅速

headingButton.setTitleColor(.black, for: .normal)

2
これは機能します。しかし、元の質問のコードもしばしば機能します。タイトルが質問のコードに応答しないことがあるのはなぜですか?
crgt

7
その理由は、ボタンがクリックされたり、状態が変化したりすると、ボタンのコードによってtitleLabelのプロパティがリセットされ、その状態に対するボタンの内部設定と一致するためです。
psycotica0 2014年

1
アップルのドキュメントには次のように記載されています。「ラベルオブジェクトを使用してテキストの色や影の色を設定しないでください。代わりに、このクラスのsetTitleColor:forState:メソッドとsetTitleShadowColor:forState:メソッドを使用して変更してください。」「なぜ」の本当の説明はありません。
clauswey 2015年

UIControlStateNormalの色を設定する場合、他のすべての状態に色を設定する必要はありません(ボタンを押したときに同じように見えるようにする場合)。
drpawelo

アプリのデリゲートでボタンのテキストの色をグローバルに変更する方法。多分UIButton.appearance()。setTitleColorを使用していますか?
Awais Fayyaz

5

から拡張されたカスタムクラスMyButtonを作成しましたUIButton。次に、これを内に追加しましたIdentity Inspector

ここに画像の説明を入力してください

この後、ボタンタイプをCustomに変更します。

ここに画像の説明を入力してください

そして、あなたは次のように属性を設定することができますtextColorし、UIFontあなたのためのUIButtonさまざまな状態のために:

ここに画像の説明を入力してください

次に、MyButtonクラス内に2つのメソッドも作成しました。これをUIButton強調表示して表示したい場合は、コード内で呼び出す必要があります。

- (void)changeColorAsUnselection{
    [self setTitleColor:[UIColor colorFromHexString:acColorGreyDark] 
               forState:UIControlStateNormal & 
                        UIControlStateSelected & 
                        UIControlStateHighlighted];
}

- (void)changeColorAsSelection{
    [self setTitleColor:[UIColor colorFromHexString:acColorYellow] 
               forState:UIControlStateNormal & 
                        UIControlStateHighlighted & 
                        UIControlStateSelected];
}

のドキュメントによると、一度に複数の状態が存在する可能性があるためtitleColor、通常、ハイライト、および選択にを設定する必要UIControlStateがありますUIControlState。これらのメソッドを作成しない場合、UIButtonは選択または強調表示を表示しますが、選択自体を表示するためではなく、選択の短い表示にのみ使用できるため、UIColor内部の設定に留まりUIInterface Builderません。


最後のコードスニペットの|代わりに使用する必要はありません&か?
130e13a

5

Swiftの場合:

ラベルのテキストの色の変更は、の変更とはかなり異なりUIButtonます。UIButtonこのメソッドを使用してテキストの色を変更するには:

self.headingButton.setTitleColor(UIColor(red: 107.0/255.0, green: 199.0/255.0, blue: 217.0/255.0), forState: UIControlState.Normal)

0

Swift 5バージョン:

デフォルトの組み込み色を使用することにより:

  1. button.setTitleColor(UIColor.green, for: .normal)

または

RGBメソッドを使用して、カスタムカラーを使用できます。

  1. button.setTitleColor(UIColor(displayP3Red: 0.0/255.0, green: 180.0/255.0, blue: 2.0/255.0, alpha: 1.0), for: .normal)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.