2012-04-17 1 views
2

私はiOSアニメーションには新しく、CGAffineTransformを使ってUIImageViewの翻訳アニメーションと一緒に2つの画像間のトランジションを組み合わせることが可能かどうか疑問に思っていますか?iOS5はCGAffineTransformとanimationImagesを組み合わせますか?

つまり、2つの画像をアニメーションしたいのですが、2つの画像の間を行き来しながらページ全体を移動するように同時変換を適用したいのです。

私はなどの2つのCGAffineTransformsを組み合わせるためにCGAffineTransformConcatを適用することができます。しかし、別のUIImageに移行するためのCGAffineTransformはありません。

イメージ間でアニメーション化する方法は、UIImageView animationImages配列とstartAnimatingを組み合わせて使用​​することだけです。しかし、私はどのようにこのような翻訳と組み合わせるのか分かりません:

UIImageView* textView = [[UIImageView alloc] initWithFrame:bunnyImage.frame]; 

textView.animationImages = [NSArray arrayWithObjects:  
          [UIImage imageNamed:@"bunnyclose.png"], 
          [UIImage imageNamed:@"bunnytalk.png"], 
          nil]; 

textView.animationDuration = 1.0; 
textView.animationRepeatCount = 8; 
[textView startAnimating]; 

[self.view addSubview:textView];  

何か提案がありますか?

答えて

2

私自身の質問に答えて、"Creating Animated Transitions Between Views"で説明したブロックアニメーション機能transitionFromView:toView:duration:options:completionは、私がまだ思いついた最善の解決策です。これを使用して画像間でアニメーションを作成すると、ブロックアニメーションanimateWithDuration:delay:options:animations:completion:とCGAffineTransformTranslateを組み合わせたり、Animationsで説明したようにUIImageViewのcenterを変更したりすることができます。

私の元のコードブロックを再加工し、私の翻訳を追加するには、次のようなものになります。

UIImageView* bunny2View = [[UIImageView alloc] initWithFrame:bunny2Image.frame]; 


[UIView 
transitionFromView:bunny2Image 
toView:bunny2View 
duration:10.0 
options:UIViewAnimationOptionShowHideTransitionViews 
completion:^(BOOL finished) { 
    [UIView 
     animateWithDuration:dur 
     animations:^(void) { 
      CGPoint center = bunny2Image.center; 
      center.y += deltay; 
      bunny2Image.center = center; 
      bunny2View.center = center; 
     } 
     completion:^(BOOL finished) { 

      [UIView 
      transitionFromView:bunny2View 
      toView:bunny2Image 
      duration:10.0 
      options:UIViewAnimationOptionShowHideTransitionViews 
      completion:nil]; 
     }]; 
}]; 

まだ進行中の作業を、これは私がこれまでに作ってみたものです!

関連する問題