簡體   English   中英

iPhone SDK - 如何判斷動畫何時完成?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM