如何在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来强制布局传递。 然后框架应该被更新。
- 使用自动布局约束dynamic调整表格视图单元格大小
- 如何在iOS的自动布局中设置视图的dynamic宽度和高度?
- 无法将UILabel的Y位置与Autolayout“on”一起移动
- 使用AutoLayout,当导航栏消失时,如何将UILabel放在同一个地方?
- 首次出现时不能更改UITableViewCell中的UILabel的框架(使用Autolayout)
- 在UITableViewCell的子视图上设置遮罩层将覆盖自动布局约束
- UIScrollView无法使用自动布局放大iOS7
- 如果将UICollectionViewCell子类的contentView.translatesAutoResizingMaskToConstraints设置为“false”?
- 在视图控制器的宽度上水平均匀分布UIButton的最简单的方法是什么?