web-dev-qa-db-ja.com

UIButtonタイトルのテキストの色

UIButtonのテキストの色を設定しています

headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0 
                                                     green:71/255.0 
                                                      blue:113/255.0 
                                                     alpha:1.0];

動作している別のコードで使用しているのと同じコードの色は変わりません。

159
Ali

つかいます

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)
419
Amit Singh

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

enter image description here

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

enter image description here

その後、さまざまな状態のtextColorUIFontUIButtonなどの属性を設定できます。

enter image description here

その後、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は選択または強調表示を表示しますが、選択自体を表示するためではなく、選択の短い表示にのみ使用できるため、UIInterface Builder内でセットアップしたUIColorには残りません。

5
Alex Cio

In 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)
3