0

押した後に画面上でランダムに移動する UIButton を作成したいと思います。ブロックでアニメーションを使いたい。どうやってこれを行うのですか?

4

1 に答える 1

1

これを試してください。これは、ボタンを右に 50 ピクセルアニメーション化してから元に戻す簡単な例です (IB で myButton をリンクすることを忘れないでください) -

.h -

@property (nonatomic, retain) IBOutlet UIButton *myButton;

.m -

@synthesize myButton;

-(IBAction)myButtonPressed {

    CGPoint oldCentre = myButton.center;
    CGPoint newCentre = myButton.center;
    newCentre=CGPointMake(newCentre.x + 50.0, newCentre.y);

    [UIView animateWithDuration:0.3
                      delay:0.0
                    options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                 animations:^{
                     myButton.center = newCentre;
                 }
                 completion:^(BOOL finished){

                     [UIView animateWithDuration:0.3
                                           delay:0.0
                                         options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                                      animations:^{
                                          myButton.center = oldCentre;
                                      }
                                      completion:nil
                      ];
                 }
     ];

}

好きなアニメーションをブロックに入れることができます。

UIViewAnimationOptionAllowUserInteraction ビットを取り除くことを検討することをお勧めします。アニメーション中にユーザーがボタンに触れ続けると、面白い結果が生じる可能性があるためです...

于 2012-04-16T09:07:13.643 に答える