0

UIButtonのコードには、画面上を着実に移動する があります。現在、ユーザーがボタンを押すと、アルファは 0 に変わり、消えます。私がやりたいのは、ボタンが押された後/ボタンが消えた後に別のアニメーションを実行することです。簡単に思えますが、問題は、ボタンが押された正確なポイントでアニメーションを実行する必要があることです。そして、私はこれを実現する方法について空白を描いています。どんな助けでも大歓迎です!以下に関連するコードをいくつか掲載します。

-(void)movingbuttons{
    movingButton2.center = CGPointMake(x, y);
    displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(moveObject)];
    [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
}

-(void)moveObject{
    movingButton2.center = CGPointMake(movingButton2.center.x , movingButton2.center.y +1);
}


-(IBAction)button2:(id)sender {
    [UIView beginAnimations:nil context:NULL];
    [movingButton2 setAlpha:0];
    [UIView commitAnimations];

}
4

2 に答える 2

1

button2アクションを以下のコードに置き換え、必要なアニメーションで someOtherMethodWithAnimation メソッドを実装します:)

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
 movingButton2.alpha = 0;
[UIView commitAnimations];
[self performSelector:@selector(someOtherMethodWithAnimation) withObject:nil afterDelay:1.0];
于 2013-02-18T17:26:27.383 に答える
0

アニメーションを次のものに置き換えます。

[UIView animateWithDuration:0.25
             animations:^{
                 self.movingbutton2.alpha = 0.0;
                             // modify other animatable view properties here, ex:
                             self.someOtherView.alpha = 1.0;
             }
             completion:nil];

ちょっとしたポイントですが、View Controller の .xib ファイルのボタンは IBOutlets と IBActions に正しく接続されていますか?

更新

メソッドでその 1 つのボタンを変更することに限定されません。必要なコードをアニメーション ブロックに追加します (上記の更新されたサンプルを参照してください)。

UIViewアニメート可能なプロパティ、そこにアニメーションセクションがあります。

別のアプローチが考えられます(私はalpha例として使用しています):

[UIView animateWithDuration:1.0
                 animations:^{
                     self.movingButton2.alpha = 0.0;
                 }
                 completion:^{
                     [UIView animatateWithDuration:0.25
                                        animations:^{
                                            self.someOtherView.alpha = 1.0;
                                        }
                                       completion:nil];
  }];

これにより、アニメーションが次々と発生することが保証されます。

于 2013-02-18T17:02:04.343 に答える