2012-06-14 4 views
2

내 UIViewController에 재건 완전히이 같은 자신을 다시 제어하는보기를 얻을 수있는 UIView의 변화를 애니메이션 :는 UIView의 완전히

[self.view rebuildYourself:bIsLandscape]; // this line is in the ViewController 

자체가 다음 방법이 포함 된보기 :

-(void)rebuildYourself:(BOOL)isLandscape 
{ 
    NSArray *viewsToRemove = [self subviews]; 
    for (UIView *v in viewsToRemove) { 
     [v removeFromSuperview]; 
    } 

    [self addControls]; // adds lots of views 
    [self layoutControlsWithOrientation:isLandscape]; // frames the views 

} 

전체 전환을 움직이기를 원합니다. 나는 이것을 시도 :

[UIView animateWithDuration:1.0 
         delay:0.0 
        options:UIViewAnimationOptionTransitionCurlUp 
       animations:^{ 
          [self.view rebuildYourself:bIsLandscape]; 
         } 
       completion:^(BOOL finished){ 

         }]; 

하지만 애니메이션 UIViewAnimationOptionTransitionCurlUp의 옵션 값을 무시하고 왼쪽 상단 모서리마다에서 흐른다.

나는이 시도했다 :

[UIView beginAnimations:@"kkk" context:nil]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; 
[UIView setAnimationDuration:1.0]; 
[self.view rebuildYourself:bIsLandscape]; 
[UIView commitAnimations]; 

하지만이 경우 전환이 잘 꼬고 않지만 전환이 완료 한 다음 새보기가 갑자기보기에 '팝업'때까지 기본보기가 비어

, 이는 전환 효과를 상실합니다.

누구나보기가 완전히 재구성되는 전환을 애니메이션화하는 데 올바른/최선의 방법을 말할 수 있습니까?

감사합니다.

+0

다른보기로보기를 새 데이터로 바꾸려고 했습니까? –

+0

나는 그것을 시도하지 않았다. 그러나 나는 바이올린을 가질 것이다. .. – whatdoesitallmean

답변

3

두 개의보기를 만들고 새 재구성 된보기의 이전보기를 덮어 씁니다. 그런 다음 새 뷰가 표시되고 메모리에서 이전 뷰를 제거하도록 이전 뷰를 '컬 업'하십시오.