2012-02-06 34 views
2

我有一個應用程序,動畫從0到1的一些圖像的alpha。如果我回到之前的視圖popToRootViewController,然後回到這個視圖中,當我按下後退按鈕時,動畫會繼續從原來的位置繼續。此外,「動畫電影」重新開始,而其他動畫仍在進行中。一次播放兩種電影。IOS動畫定稿

我像這樣顯示圖像:

-(void)showStar2 
{ 

    [UIView animateWithDuration:0.3f animations:^{ 
     [UIView setAnimationDelay:0.3]; 
     [stars[1] setAlpha:1]; 
     } completion:^(BOOL finished){ 
     [self showStar3]; 
    }]; 

有沒有辦法,我按後退按鈕停止動畫製作過程?我試過[self.view.layer removeAllAnimations],但它仍然不起作用。

回答

0

您需要導入QuartzCore.h文件。

#import <QuartzCore/QuartzCore.h> 

,只要你想停止動畫調用這個

[CATransaction begin]; 
[self.view.layer removeAllAnimations]; 
[CATransaction commit]; 
+0

不起作用。如果我回過頭來看這個視圖,動畫仍然在顯示。 – Teo 2012-02-06 14:21:19

+1

嘗試從星星[1] .layer – murat 2012-02-06 15:45:43

+0

中刪除動畫,而不是使用塊使用其中提交動畫的較舊方法的uiview動畫,這應該工作 – 2012-02-07 05:05:33

0

將這個創建您升景之前(不知道它是如何稱呼)

if (starView!=nil){ 
     [starView removeFromSuperview]; 
     [starView release]; 
     starView = nil; 
    } 
starView = [[UIView alloc] initWithFrame:frame]; 

這將刪除圖像創建之前。

或者在關閉視圖時刪除圖像。