我使用UIView
动画在我的应用程序:的UIView动画结束
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
//do some animation
[UIView commitAnimations];
现在,有一种可能性,即动画将需要几秒钟才能完成。那么,有没有办法知道动画何时结束?
我使用UIView
动画在我的应用程序:的UIView动画结束
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
//do some animation
[UIView commitAnimations];
现在,有一种可能性,即动画将需要几秒钟才能完成。那么,有没有办法知道动画何时结束?
我还没有使用这个,但有一个方法setAnimationDidStopSelector,它允许你定义一个动画完成时应该调用的选择器。
另请参阅Apple的文档UIView。
还有上Ray Wenderlich's网站
使用苹果提供的最新的基于块的动画方法的一个例子:在你使用的方法不久将被取消
[UIView animateWithDuration:0.5
delay:0.0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{
//animation block
}
completion:^(BOOL finished){//this block starts only when
//the animation in the upper block ends
//so you know when exactly the animation ends
}];
...
看来,完成块也是动画,任何方式我可以立即执行完成块吗? –
不......不认为完成块应该需要时间。 Apple的文档 - “当动画序列结束时要执行的块对象。”如果您仍然发现问题,您可能会错过某些东西......将其作为问题发布。 – tipycalFlow
正如tipycalFlow所指出的,blocsk也可以工作,但只适用于运行4或更高版本的设备。 – Frank
是的。也检查出这个SOF的问题:http://stackoverflow.com/questions/7008838/multistage-animation-using-blocks/7009149#7009149 – tipycalFlow
好:),将不得不尝试在一段时间 – Frank