2014-12-01 2 views
1

사용자 지정 포함보기 컨트롤러를 구현하고 있습니다. 자식 VC는 탐색 컨트롤러이며 전체 화면입니다. 내가 사용 전환/애니메이션을 수행하려면 :사용자 지정 컨트롤러 포함 및 탐색 모음 높이

// controller hierarchy setup 
parentVC.addChildViewController(targetVC) 
currentVC.willMoveToParentViewController(nil) 
// position target 
targetVC.view.frame = currentVC.view.frame 
targetVC.view.autoresizingMask = .FlexibleHeight | .FlexibleWidth 
// swap em 
parentVC.transitionFromViewController(currentVC, toViewController: targetVC, duration: 0.3, options: .TransitionCrossDissolve, animations: {}) { (finished) -> Void in 
    // controller hierarchy complete 
    self.currentVC.removeFromParentViewController() 
    self.targetVC.didMoveToParentViewController(self.parentVC) 
} 

그것은 애니메이션이 완료 될 때까지 탐색 모음이있는가 추가로 20 픽셀로 제자리에 팝업 포인트, 상태 표시 줄을 underlaps하는 큰 제외하고 잘 작동 높이.

프레임이 애니메이션보다 먼저 설정되기 때문에 애니메이션이 프레임에 영향을 미치지 않으므로 손실이 발생합니다 ... 어떤 아이디어입니까?

답변

2

나는 transitionFromViewCon...을 도트 처리하여 UIView의 animateWithDuration을 사용하여 원하는 효과를 얻을 수있었습니다. transitionFromViewCon...을 붙이는 방법을 생각해내는 것이 이상적일지도 모르겠지만, 지금 당장이 작업을 수행 할 것입니다.

// controller hierarchy setup 
    parentVC.addChildViewController(targetVC) 
    currentVC.willMoveToParentViewController(nil) 
    // position target 
    targetVC.view.alpha = 0 
    parentVC.view.addSubview(targetVC.view) 
    // swap em 
    UIView.animateWithDuration(0.3, animations: {() -> Void in 
     // crossfade 
     self.targetVC.view.alpha = 1 
     self.currentVC.view.alpha = 0 
    }, { (finished) -> Void in 
     self.currentVC.view.removeFromSuperview() 
     // controller hierarchy complete 
     self.currentVC.removeFromParentViewController() 
     self.targetVC.didMoveToParentViewController(self.parentVC) 
    }) 
관련 문제