0

そのため、UIButton をサブクラス化し、それに追加した唯一のメソッドは setTitle です (アイコン フォントを使用しているため、アイコンで表されるボタン用に Icon_UIButton を作成しました)。

私はこのコードを持っています:

Icon_UIButton* button = [[Icon_UIButton alloc] init]; 
[button setTitle:@"R"]; //R is a specific icon in my icon font
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];

これは機能しているように見えますが、次を使用してボタンを選択済みに設定した後:

[button setSelected:YES];

そのボタンをタップして押し続けると、再び黒くなります。

選択された Icon_UIButton が、同時に選択されたときに強調表示された状態の titleColor を無視するようなものです。

誰もこれを経験しましたか?

4

1 に答える 1

0

わかりました、このスレッドで私の質問に対する正しい答えを見つけました:

選択された状態から通常の状態に移行するときに、UIButton の強調表示された状態にならない

私は自分の質問に答えるのが嫌いですが、他の誰かがこの質問に一致する可能性のある検索用語をGoogleで入力した場合に備えて、ここに答えがあります(短縮されていますが、他のスレッドから直接):

別の UIControlState (または、コントロール状態の組み合わせ) があります。

UIControlStateSelected | UIControlStateHighlighted

したがって、コードは次のようになります。

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected | UIControlStateHighlighted];
于 2013-07-16T14:52:01.763 に答える