2011-09-19 3 views
6

iOS 설명서에서는 beginAnimation-commitAnimation 사용을 권장하지 않습니다. 따라서 애니메이션과 전환에는^블록을 사용하는 새로운 방법이 있습니다. 그러나 나는 transitionWithView를 사용할 때 : 지속 시간 : 옵션 : 애니메이션 : 나는 그것을 다음과 같은 방법UIView 전환 애니메이션이 transitionWithView : duration : options : animation : completion 메소드와 함께 작동하지 않습니다.

[UIView transitionWithView:self.view duration:1.0 options 
     UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp 
     animations:^{ 
      firstView.hidden = YES; 
      secondView.hidden = NO; 
     } completion:NULL 
     ]; 

I를 할 경우

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
         forView:self.view cache:YES]; 

firstView.hidden = YES; 
secondView.hidden = NO; 
[UIView commitAnimations]; 

작동하지만 : 완료 방법은 내가 작성하는 경우에는 전환 effects.So를 얻을 전환 효과를 얻지 마십시오. 내가 뭘 놓치고 있니?

답변

18

좋아, 애니메이션을 얻으려면 모두가 알아 두어야 할 미묘한 세부 사항을 발견했으며 전환은 iOS 4 이상에서 사용할 수있는 방법으로 작동합니다. 메소드의 애니메이션/전환 옵션을 지정하려면 그 안에 "Option"이라는 단어가있는 상수를 사용하십시오. 그래서 그 대신

UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp 

를 작성 우리는 변화가 관찰 잘

+0

감사 일한 고정 후

를 작성해야합니다. 좋은 정보! – GrimmRanger

+0

하, 멋진 자리, 그리고 자동 완성으로 만드는 쉬운 실수 ... 필요할 때 유형 안전이 어디 있습니다! – bandejapaisa

+0

오 마이 갓! 내가 이것을 발견 할 때까지 나는이 허튼 소리에 2 시간을 썼다. 애플은 심각하게 "비 - 옵션"버전을 평가 절하해야한다. – rushinge