2012-04-17 1 views
2

저는 iOS 애니메이션을 처음 접했고 CGAffineTransform을 사용하여 UIImageView의 번역 애니메이션과 함께 두 이미지 사이의 전환을 결합 할 수 있는지 궁금합니다.iOS5는 CGAffineTransform과 animationImages를 결합합니까?

즉 두 개 이미지 사이에 애니메이션을 적용하고 두 개 이미지간에 앞뒤로 움직이는 동안 페이지 전체에서 모든 것이 움직 이도록 동시 번역을 적용하려고합니다.

내가 CGAffineTransformConcat을 적용하여 CGAffineTransformTranslate과 같은 다른 두 가지 CGAffineTransforms를 결합 할 수 있음을 알고 있습니다. 하지만 다른 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]; 
     }]; 
}]; 

작품을, 그러나 이것은 내가 지금까지 가지고 올 한 것입니다!