2011-02-11 5 views
1

수수께끼 같은 문제가 있습니다. iPad와 iPhone 버전간에 공유 코드가 많은 범용 앱이 있습니다. 닙에는 다양한 레이아웃이 있지만 본질적으로 동일한 뷰와 뷰 계층 구조가 있습니다. 하나의 UIView는 두 형제 UITextView의 컨테이너로 사용됩니다. 아이들과 함께iOS : UIView 애니메이션, 애니메이션이 적용되지 않음

의 UIView의 MAINVIEW :
UITextView passageTextView은
UITextView notesTextView

한 UITextView는 다른 볼, 숨겨져 있습니다.

다음은 제 코드입니다. 주석 처리 된 섹션은 내 원래 애니메이션 시도였습니다. 이 작업은 iPad에서 원하는대로 작동하지만 iPhone에서는 작동하지 않습니다. 비 주석 섹션은 문서에서 권장하는 방법을 사용하여 2를 사용합니다. 주석 처리되지 않은 코드는 iPad 또는 iPhone에서 작동하지 않습니다. 내보기는 숨기거나 숨김을 해제하지만 애니메이션은 사용하지 않습니다. 완료 블록에 코드가 추가되어 실행될 수도 있으므로 무언가를하고 있습니다. 애니메이션을 적용하지 마십시오.

/* 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:mainView cache:YES]; 

passageTextView.hidden = YES; 
notesTextView.hidden = NO; 

[UIView commitAnimations]; 
*/ 

UIViewAnimationOptions options = UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationTransitionFlipFromRight; 

[UIView transitionWithView:mainView 
        duration:1.0 
        options:options 
       animations:^{ passageTextView.hidden = YES; notesTextView.hidden = NO; } 
       completion:NULL]; 

편집는 : 아직도 누군가가 제안을 가지고 희망, 문제에서 작동합니다.

다음은 아이폰에서 작동하지 않는 이유

알아 낸 추가 업데이트 : 내가 인터페이스 빌더에서 MAINVIEW에보기를 연결하는 무시했다

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:mainView cache:YES]; 

passageTextView.hidden = YES; 
notesTextView.hidden = NO; 

[UIView commitAnimations]; 

. 디버깅에 몇 시간이 걸렸는데 이제 막 체크 할 생각입니다.

그러나 애니메이션 블록이 iPhone이나 iPad에서 작동하지 않는 이유는 아직도 알지 못합니다. 몇 가지 접근법을 시도했지만 show/hides가 작동하고 있어도 애니메이션이 생기지 않습니다.

답변

7

잘못된 애니메이션 옵션을 사용하고 있다고 생각합니다.

내가 UIViewAnimationTransitionFlipFromLeft가 (코드에서 무엇을 가지고있는)을 UIViewAnimationTransition 아닌 UIViewAnimationOptions이라고 생각

합니다 ( Option Animation 사이 Transition주의) UIViewAnimationOptionTransitionFlipFromLeft하여 두 번째 애니메이션 옵션을 교체합니다.

+0

나는 그것을 고려했다.하지만 Apple의 애니메이션 프로그래밍 가이드 섹션에는 UIViewAnimationOptionTransitionFlipFromRight를 UIViewAnimationOptions의 옵션으로 사용하는 예제가 있습니다. 이 경우, 그들은 transitionFromView : toView :를 애니메이션에 사용합니다.하지만 그 방법을 시도해 보았습니다. 성공하지 못했습니다. –

+1

하지만 실제로'UIViewAnimationTransitionFlipFromLeft'를'UIViewAnimationOptionTransitionFlipFromLeft'로 대체 해 보았습니다. 나는 (a) 그것이 효과적 일 것이라고 생각하고 (b) 다른 숫자로 결심하기 때문에 나는 묻는다. UIViewAnimationTransitionFlipFromLeft가 1로 해석되는 동안 UIViewAnimationOptionTransitionFlipFromLeft가 1로 해석됩니다. –

+1

아, 맞습니다. 나는 원래의 코멘트에서 그 차이점을 알아 내지 못했습니다. 그것들은 다른 값을 가지며 UIViewAnimationOptionTransitionFlipFromLeft로 변경되어 고정되었습니다. –

관련 문제