0

UIScrollView に保持されている多くの UIButtons があり、それらはすべて動的にタグ付けされています。

ボタンへの参照を作成することで、作成メソッドの外部でタグなどのボタンのプロパティを取得できます。ただし、ボタンにプロパティを設定できません。具体的には、ハイライトを設定できないようです。

以下に例を示します。

//UIButton is created elsewhere, i.e. UIButton *createdButton... createdButton.tag = 101
//Trigger method with createdButton as SENDER

- (void)highlightButton:(id)sender {

UIButton *buttonInstance = (UIButton *)sender;
int tag = buttonInstance.tag //use this to perform button-specific code

[buttonInstance setHighlighted:YES]; // <-- Not setting

}

何か案は?

4

1 に答える 1

1

highlighted通常、一時的な状態であり、ユーザーがボタンに触れていることを示すために使用されます。NOそのため、タッチ処理イベントの通常の過程で UIKit によって再設定されることがよくあります。メソッドはボタン自体のアクションによって呼び出されるため、これはあなたの場合に特に可能性が高いようです。

ボタンの外観を永続的に変更したい場合は、selectedではなくを設定する必要がありますhighlighted。このコントロール状態 ( UIControlStateSelected) のタイトル、画像などは、 と同じ方法で設定できますUIControlStateHighlighted

于 2012-12-16T15:43:12.100 に答える