2014-03-04 2 views
0

나는 서로 위에 2 개의 동일한보기가 있습니다. 하나는 실제 하나이며 하나는 더미로 작동해야합니다.서로 위에 동일한보기간에 교차 페이드

나는 그들 사이를 (자동으로) 교차 페이드하고 싶습니다. 동일한 애니메이션 블록에서 하나의보기의 알파를 0으로 설정하고 두 번째보기의 알파를 1로 설정했습니다.

결과가 부드럽지 않고 하나의보기가 희미 해지고 두 번째가 희미 해지는 것을 볼 수 있습니다. 이 애니메이션을 무음으로 보내고 싶습니다.

P. 실제 뷰는 페이드 아웃해야하는 콜렉션 뷰의 일부이고 콜렉션 뷰가 사라진 후 콜렉션 뷰의 셀 중 하나를 대체하는 것으로 가정하기 때문에 두 번째 뷰 (더미)는 애니메이션없이 해당 알파를 설정할 수 없습니다.

iOS가 그런 방식으로 렌더링하는 이유는 무엇입니까?

감사합니다.

+0

당신이하려고하는 애니메이션 코드를 공유 할 수 있습니까? – GenieWanted

답변

2

시도 :

[UIView transitionFromView:view1 toView:view2 duration:0.5 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        completion:^(BOOL finished) { 
     // Compeltion code 
    }]; 
+0

감사! 매력처럼 일했습니다. –

+0

한 가지 질문 :이 행은 올바르게 이해할 경우 뷰 계층 구조에서 view1을 제거합니다. 이 애니메이션을 나중에 역순으로 만드는 방법은 무엇입니까? –

+0

이렇게하면 superView에서 view1이 제거되어 아무에게도 강력한 참조가 없으면 dealloc을 얻게됩니다. 클래스 레벨에서 그 뷰를 유지하고 나중에 같은 트랜지션을 수행 할 수 있습니다. 이번엔'fromView : view2 toView : savedView' –