我正在执行一个按钮触摸后的动画。如果用户在当前动画完成前触摸了按钮,我希望新的动画等到当前动画完成后再开始。我该怎么做?
使用UIView的animateWithDuration包装器的完成变体将其嵌套,如下所示:
[UIView animateWithDuration:1.00 animations:^{
//animate first!
}
completion:^(BOOL finished) {
[UIView animateWithDuration:1.00 animations:^{
//animate the second time.
}];
}];
如果只想让单个动画从当前状态继续播放,可以使用以下代码:
[UIView animateWithDuration:1.00
delay:0.00
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{
//animate
}
completion:^(BOOL finished){
}];
我总是用这个来链接我的动画:
[self performSelector:@selector(animationDone) withObject:nil afterDelay:1.0];