3

UIImage である UIButton の Selected-state と Normal-state があります。ボタンがタッチされると、選択された状態になり、1 秒間アニメーションして通常の状態に戻ります。UIButton* ボタンが押されたときに次のアニメーションを設定しましたが、選択解除された状態に戻るだけです。これを達成するにはどうすればよいですか?

[btn setSelected:YES];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f];
[btn setSelected:NO];
[UIView commitAnimations];

乾杯

ニック

4

1 に答える 1

13

はアニメート可能なプロパティではないためselected、機能しません (ご存じのとおり)。私の解決策は、btn の選択状態を、まったく同じ場所のボタンのすぐ下にある別の UIImageView にすることです。次に、ボタンをタップするアクションで:

- (void) tapButton:(UIButton *)btn {
    btn.alpha = 0;
    [[UIApplication sharedApplication] beginIgnoringInteractionEvents];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1];
    [UIView setAnimationDelegate:[UIApplication sharedApplication]];
    [UIView setAnimationDidStopSelector:@selector(endIgnoringInteractionEvents)];
    btn.alpha = 1;
    [UIView commitAnimations];
}

begin/endIgnoringInteractionEventsまた、通常の状態にフェードバックしている間、ユーザーがボタンをタップできないように、呼び出しも追加したことに注意してください。それを許可したい場合は、begin/end呼び出しを次のように置き換えます[UIView setAnimationBeginsFromCurrentState];

于 2009-10-04T19:13:54.773 に答える