如何知道Core Animation何时完成?

for*_*yez 2 iphone core-animation objective-c

说我有......

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

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

myObject.center = position;

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助非常感谢!

Ton*_*one 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 {
     ......
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.