IOSアニメーションファイナライズ

私は0から1までいくつかの画像のアルファをアニメーション化するアプリケーションを持っています。 popToRootViewController で前のビューに戻り、このビューに戻った場合、アニメーションは「戻る」ボタンを押したときの位置から続行されます。また、もう一方のアニメーションが進行中である間に、「アニメーションムービー」が再び開始されます。一度に2つの映画の種類を再生します。

私はこのような画像を表示します:

-(void)showStar2
{

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

戻るボタンを押したときにアニメーション処理を停止する方法はありますか?私は [self.view.layer removeAllAnimations] を試しましたが、それでも動作しません。

2

2 答え

あなたがあなたのstarViewを作成する前にこれを置いてください(それがどのように呼ばれているのかわかりません)

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

これにより、新しい画像を作成する前に画像が削除されます。

または、ビューを閉じるときに画像を削除します。

0
追加された

QuartzCore.hファイルをインポートする必要があります。

#import 

アニメーションを停止したいときはいつでもこれを呼び出す

[CATransaction begin];
[self.view.layer removeAllAnimations];
[CATransaction commit];
0
追加された
動作しません。このビューに戻って戻っても、アニメーションはまだ表示されています。
追加された 著者 Teo,
ブロックを使用する代わりに、あなたがアニメーションをコミットするuiviewアニメーションの古いメソッドを使用します。
追加された 著者 Piyush Kashyap,
星からアニメーションを削除してみてください[1] .layer
追加された 著者 murat,