IT분야/iOS

[iOS]CATransction을 이용한 애니메이션 구현

suroMind 2012. 2. 22. 15:22

출처 : http://www.prapps.net/514

* <QuartzCore/QuartzCore.h> import

        //트랜잭션 시작

   [CATransaction begin]; 

   [CATransaction setValue:[NSNumber numberWithBool:YES]  forKey:kCATransactionDisableActions];

   [CATransaction setValue:[NSNumber numberWithFloat:0.5f]  forKey:kCATransactionAnimationDuration];  //실행되는 시간

        

   // Animation 설정

   CATransition *push = [CATransition animation];

   [push setType:kCATransitionMoveIn];      //Animation 타입  

   push.subtype = kCATransitionFromLeft;    //Animation이 시작될 위치 

   //push.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

        
    //애니메이션이 일어날 뷰의 레이어에 애니메이션을 추가 시킨다. 

   [self.imgMain.layer addAnimation:push forKey:kCATransition];  

    
   //이미지뷰에 이미지 변경 

   UIImage *tempImg = [[UIImage alloc] initWithData:data];

   self.imgMain.image = tempImg;

   [tempImg release];

       
   //애니메이션 시작 

   [CATransaction commit];
 

** 애니메이션 타입과 시작될 위치 및 애니메이션이 일어날 뷰의 레이어만 잘 적용한다면 원하는 애니메이션을 구현하실 수 있습니다.

* 애니메이션 타입
  - kCATransitionFade
  - kCATransitionMoveIn
  - kCATransitionPush
  - kCATransitionReveal 

* 서브 타입
  - kCATransitionFromRight
  - kCATransitionFromLeft
  - kCATransitionFromTop
  - kCATransitionFromBottom