如何在animateTransition期间获取ToViewController中子视图的框架:?

我使用iOS 7引入的新的自定义转换,我试图从我的'主'视图控制器的视图移动到我的'详细'视图控制器types的视图类似如何Photos.app放大照片时你点击它,除了这个视图在细节vc只占了一半的屏幕。 要做到这一点,我试图通过从细节或toViewController获取最终框架来animation这个视图到最后的框架。 然而,我得到的框架是从Interface Builder的toViewController视图的起始框架,而不是在AutoLayer传递给它之后出现的视图。 自动布局设置后如何获取框架? 在toViewController特殊视图框架返回到animateTransition之前,我尝试过[self.view layoutSubviews]:但是仍然给出了IB布局。

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; [[transitionContext containerView] addSubview:toViewController.view]; toViewController.view.alpha = 0; [UIView animateWithDuration:[self transitionDuration:transitionContext] animations:^{ fromViewController.view.alpha = 0; toViewController.view.alpha = 1; fromViewController.specialView = [toViewController detailSpecialViewFrame]; } completion:^(BOOL finished) { [transitionContext completeTransition:![transitionContext transitionWasCancelled]]; }]; } 

调用layoutIfNeeded而不是layoutSubviews来强制布局传递。 然后框架应该被更新。