1

ボタンを押すと、ジャンプして下に浮くアニメーションがあります。私はアニメーションに使用して、1つは浮き上がらせ、2つ目は下ろします。私が何をしても、最初のアニメーションはフロートせず、トップにテレポートするだけで、2番目のアニメーションは正確に本来の動作をします。

これは私が持っているものです:

//This animation does not respond to its duration.
[UIView animateWithDuration:.5 delay:0.0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     CGRect f = imageView.frame;
                     f.origin.y -= 40;
                     imView.frame = f;
                 }
                 completion:nil];

[UIView animateWithDuration:.7 delay:0.0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     CGRect f = imageView.frame;
                     f.origin.y += 40;
                     imView.frame = f;
                 }
                 completion:nil];

もう1つの問題は、アニメーション全体で画像を変更したいのですが、最後に宣言した画像から始まるという問題があります。ありがとうございました!

4

1 に答える 1

6

2番目のアニメーションは、遅延がないため、最初のアニメーションを上書きします。最初のアニメーションの完了ブロックから2番目のアニメーションを開始してみてください。

[UIView animateWithDuration:.5 delay:0.0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     CGRect f = imageView.frame;
                     f.origin.y -= 40;
                     imView.frame = f;
                 }
                 completion:^{
                     [UIView animateWithDuration:.7 delay:0.0
                                         options:UIViewAnimationOptionCurveEaseOut
                                      animations:^{
                                         CGRect f = imageView.frame;
                                         f.origin.y += 40;
                                         imView.frame = f;
                                      }
                                      completion:nil];
                 }];
于 2012-08-04T23:29:29.773 に答える