我正在使用自定义转换在调用- 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)
。
为什么这样做?如何防止它在动画开始前设置框架?