跳跃动画:第一个动画持续时间不起作用。 IOS

时间:2012-08-04 23:27:03

标签: objective-c ios xcode cocoa-touch

我有一个动画,当按下一个按钮时,应该跳起来,然后向下漂浮。我用动画一个让它浮起来,第二个让它降下来。无论我做什么,第一个动画都没有浮动,它只是传送到顶部,第二个动画完全应该是它应该的。

这就是我所拥有的:

//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 个答案:

答案 0 :(得分:6)

你的第二个动画会覆盖第一个动画,因为它没有延迟。尝试从第一个动画的完成块开始第二个动画。

[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];
                 }];