如何知道Core Animation何时完成?

时间:2010-02-18 01:26:51

标签: iphone objective-c core-animation

说我有......

[UIView beginAnimations:nil context:NULL];  
[UIView setAnimationDuration:0.5];

CGPoint position = myObject.center;
position.x = position.x - 10;

myObject.center = position;

[UIView commitAnimations];

核心动画发生在一个单独的线程上是否有办法知道何时 一个动画完成了吗?也许,有一些方法我可以挂钩 函数调用知道什么时候结束......?

(p.s我知道我可以使用一个定时器,在这之后说0.5秒后触发一个方法 上面的例子,但这看起来很俗气)

任何帮助非常感谢!

1 个答案:

答案 0 :(得分:5)

您可以设置setAnimationDidStopSelector:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/clm/UIView/setAnimationDidStopSelector

  • (无效)setAnimationDidStopSelector:(SEL)选择

然后为该选择器实现一个方法

[UIView setAnimationDidStopSelector:@selector(finishedAnimation:finished:context:)];


- (void) finishedAnimation:(NSString *)id finished:(BOOL) finished context:(void *) context {
     ......
}

希望有所帮助。