[英]iPhone SDK - how can I tell when an animation has finished?
我在觸摸圖像時開始動畫放大,然后在釋放圖像時將其縮小到正常尺寸。 通過使用setAnimationBeginsFromCurrentState:YES,如果您通過動畫將手指抬起一部分,則縮放效果會很好並且平滑。
但是,如果你觸摸圖像足夠長的時間以完成動畫,那么我想要做的就是“鎖定”更大的尺寸,但是如果你過早地釋放它會讓它恢復正常。
有沒有辦法判斷當前是否正在運行動畫,或者特定動畫是否已完成?
我想我可以用performSelector執行此操作:afterDelay:調用touchesStarted,延遲等於動畫的長度,如果touchesEnded來得太快就取消它,但我無法想象這是最好的方式......?
- (void)animateStuff {
[UIView beginAnimations:@"animationName" context:nil];
[UIView setAnimationDelegate:self];
[self.view doWhatever];
[UIView commitAnimations];
}
- (void)animationDidStop:(NSString *)animationID
finished:(NSNumber *)finished
context:(void *)context
{
if ([finished boolValue]) {
NSLog(@"Animation Done!");
}
}
另一種可能性
[UIView animateWithDuration:0.3 animations:^{
myView.transform = CGAffineTransformMakeRotation(M_PI);
}completion:^(BOOL finished) {
NSLog(@"Animation complete!");
}];
我認為“+(void)setAnimationDidStopSelector:(SEL)選擇器”應該做你想要的。 一旦動畫完成,它將在您的委托上調用給定的選擇器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.