在退出视图之前我不想执行动画。问题是如果我写这段代码:
[self animationMethod];
[self removeFromSuperview];
由于执行removeFromSuperview指令是立即执行的,因此不会显示动画。
有一种方法可以指定removeFromSuperview方法必须在指定时间后执行吗?感谢。
答案 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,因为这是动画块的默认动画长度(如上所示)。