为什么UIKit在自定义转换期间将UIViewController的UIView帧重置为“全屏”?

时间:2013-11-06 11:36:51

标签: uiview ios7 uikit-transitions

我正在使用自定义转换在调用- presentViewController:animated:completion:时将视图控制器从屏幕上滑出2/3,并在调用dismissViewControllerAnimated:completion:时再将其滑回。

我还使用附加到UIScreenEdgePanGestureRecognizer的UIPercentDrivenInteractiveTransition来滑动视图控制器。

一切正常,除非在调用dismissViewControllerAnimated:completion:之前:

- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext

被称为视图控制器的框架滑出屏幕被设置为:

(0 0; 320 568)

导致它在动画运行之前暂时“闪烁”,并从屏幕上的2/3滑回全屏。

通过在View Controller上继承UIView,我可以在-setFrame中设置一个断点,它显示了方法:

[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:animation:]

正在使用-setFrame调用(0 0; 320 568)

为什么这样做?如何防止它在动画开始前设置框架?

0 个答案:

没有答案