0

強調表示された属性を使用して強調表示したいボタンがあります。Interface Builder では、Highlighted 属性が機能し、ボタンを視覚的に強調表示された状態に変更します。ただし、コードで [myButton setHighlighted:YES]; と書くと、何も変わりません。なぜこれが機能しないのかについてのアイデアはありますか?

4

5 に答える 5

1

この問題[button setHighlighted:YES]は、次の実行ループで実行することで解決できます。

- (void)highlightButton:(UIButton *)b { 
    [b setHighlighted:YES];
}

 - (IBAction)onTouchup:(UIButton *)sender {
    [self performSelector:@selector(highlightButton:) withObject:sender afterDelay:0.0];
}

それでもうまくいかない場合は、次の代替方法を試すことができます。

-(void)onTouchup:(UIButton*) button
{
    [NSOperationQueue.mainQueue addOperationWithBlock:^{ button.highlighted = YES; }];
}
于 2013-07-25T14:19:10.420 に答える
0

UIButton には、Normal、Highlighted、Selected、Disable の 4 つの状態があります。

-UIButton が有効な場合、タッチすると強調表示されます。そして、離すと通常の状態に戻ります。また、コマンド [button setHighlighted:YES]; 非常に短い時間で強調表示された状態に変更し、自動的に通常に戻ります。そのため、ボタンを強調表示したままにすることはできません。

-それを維持するには、@Vineet Singh の回答の 2 つの方法を使用する必要があります。ただし、通常の状態に戻すには、Highlighted:NO を設定する必要があります。

[button setSelected:YES/NO] を使用できます。制御する必要がありますが、強調表示された状態と同じように、setImageForState、または setTitleForState が必要です。

于 2013-07-25T14:50:16.827 に答える
0

ボタンが選択されると強調表示され ます。そのため、[button setSelected:YES];代わりに呼び出してみてください[button setHighlighted:YES];

于 2013-07-25T14:28:33.570 に答える