执行指令前等待

时间:2010-06-04 14:24:53

标签: iphone objective-c core-animation

在退出视图之前我不想执行动画。问题是如果我写这段代码:

[self animationMethod];
[self removeFromSuperview];

由于执行removeFromSuperview指令是立即执行的,因此不会显示动画。

有一种方法可以指定removeFromSuperview方法必须在指定时间后执行吗?感谢。

1 个答案:

答案 0 :(得分:0)

animationMethod是否使用[UIView beginAnimations:context:]部分?如果是这种情况,您应该使用动画委托。具体做法是:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(removeFromSuperview)];
//Your animation stuff
[UIView commitAnimations];

否则,如果您正在做其他没有回调的事情,您可以在延迟后使用以下方法调用该方法:

[self performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:0.25f];

其中0.25f是您要使用的延迟。我选择了0.25,因为这是动画块的默认动画长度(如上所示)。