2016-06-29 3 views
1

画像ビューをアニメーション表示しています。画像をタップすると、反転してからアニメーションを開始します。すべてがうまくいきますが、画像をタップした後にアプリがバックグラウンドになると、アニメーションが再開しません。アプリがアクティブになると、画像ビューがアニメーションを再開しません。

[UIView animateWithDuration:0.8 delay:0.2 options:UIViewAnimationOptionTransitionNone animations:^{ 
      ImageView.layer.transform = CATransform3DMakeRotation(M_PI/2, -1, 1, 0); 

     } completion:^(BOOL finished) { 


      [UIView animateWithDuration:0.7 delay:0.0 options:UIViewAnimationOptionTransitionNone animations:^{ 
       ImageView.layer.transform = CATransform3DMakeRotation(0, 0, 1, 1); 

       [_aCardImageView setImage:[UIImage imageNamed:[imageArray objectAtIndex:index_value]]]; 

      } 
      completion:^(BOOL finished){ 
       [_aCardImageView setImage:[UIImage imageNamed:[_back_imageArray objectAtIndex:index_value]]]; 
       [ImageView setUserInteractionEnabled:NO]; 

        CGRect frame = [[Frames_array objectAtIndex:index_value]CGRectValue]; 
        [self lip_sequence:index_value :frame]; 
      } 
}]; 

答えて

0

これは、アプリがバックグラウンドに移動したときにレイヤーアニメーションが削除されるデフォルトの動作です。アニメーションの状態を保存し、手動で再開する必要があります。

場合は、applicationDidEnterBackground通知とapplicationWillEnterForeground通知をリッスンし、アニメーションを処理する必要があります。

レイヤーまたはアニメーションを背景に保存して保存し、フォアグラウンドに戻すときに再開できます。

あなたはアップルからこの例のコードを使用することができますアニメーション再開するには:保存するには

[view.layer MB_setCurrentAnimationsPersistent]; 

:あなたはワンライナーを使用できるようにhttps://developer.apple.com/library/ios/qa/qa1673/_index.html

をまた一つの良い男性がCALayerのための素敵なカテゴリでこのタスクをラップすべてのレイヤーアニメーション、または

view.layer.MB_persistentAnimationKeys = @[@"position"]; 

必要なアニメーションのみを保存します。

+0

私はこれを以前に試みましたが、再開できませんでした – Bharathi

+0

これは間違いなく動作します。私はこのアプローチを何回か使用しました。あなたはgithubや他の場所にサンプルプロジェクトを投稿することができます。 –

関連する問題