animateWithDuration没有弹跳效果:delay:options:animations:completion:方法

时间:2011-09-19 11:52:47

标签: ios4 uiviewanimation

当我在beginAnimation-commitAnimatin块中编写我的动画代码时,我得到了一个弹跳效果,但是当我使用在主题中编写的方法执行相同的动画时,我得不到相同的效果。以下是两种方法:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelay:0.5];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];

[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationRepeatCount:2];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:
@selector(resetTheChickenProperties)];

theChicken.frame = CGRectMake(15, 330, 62, 90);
[UIView commitAnimations];

图像上方显示的方式(它是一个鸡蛋)沿y方向向下移动,直到它撞到地面并反弹回来。清楚地观察到弹跳效应。但是如果我在animateWithDuration的帮助下做同样的事情:延迟:选项:动画:completion方法,鸡蛋不会反弹。它看起来好像挂在弹簧上。

1 个答案:

答案 0 :(得分:1)

好的,我发现每个人都需要注意细微的细节,以便使用iOS 4及更高版本中提供的方法来使动画和过渡工作。当指定方法的动画/过渡选项时,我们必须使用其中带有“Option”一词的常量。所以不要写

UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp

我们应该写

UIViewAnimationOptionCurveEaseIn|UIViewAnimationOptionTransitionCurlUp

修复后动画效果很好。我能够获得真正的弹跳效果