这是一个绝对的初学者问题(抱歉),但我想知道如何提交一个动画,并且一旦它结束以开始另一个动画。想象一下将图像从x = 0移动到x = 300。然后你想再次对同一个图像进行动画处理,但这次从x = 300到x = 330,以便它从屏幕上消失。iPhone:如何在另一个之后提交两个动画
以下代码将只执行从x = 300到x = 330的动画,并且不会将动画x = 0提交到x = 300。我确定我没有得到commitAnnimation的概念,而且这很明显,但是我该如何做两个动画?
我知道我可以将图像直接移动到330,但我不想这样做,因为我需要第一个动画(x 0 - 300)与另一个动画同步。
这里是我的(错误的)代码:
[UIView beginAnimations:@"shadowMove" context:nil]; // Begin animation
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[imageView setFrame:CGRectOffset([imageView frame], 300, 0)];
[UIView commitAnimations]; // End animations
// Second Animation
[UIView beginAnimations:@"shadowMoveRestAway" context:nil]; // Begin animation
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[imageView setFrame:CGRectOffset([imageView frame], 330, 0)]; // Move imageView off screen
[UIView commitAnimations]; // End animations
谢谢!请试试这个。在这种情况下,也可以简单地调用另一种方法,例如, [UIView secondAnimation:nil];然后定义另一个方法,我有第二个动画?这似乎更容易(至少在我的初学者的心中)比使用@选择器(我不知道该如何工作)更容易?对于这样的问题感到抱歉,并且非常感谢您的回复。 – 2011-03-30 12:48:05
查看更新后的答案 - 我忘记了您需要设置动画代理,但我现在已经为您完成了一个完整的示例。希望有所帮助。 – Roger 2011-03-30 14:20:20
这真是太好了。你让我很快乐! – 2011-03-30 16:46:32