我正在使用自定义转换在被调用时将视图控制器滑出屏幕 2/3,- presentViewController:animated:completion:
并在被调用时再次将其滑回dismissViewControllerAnimated:completion:
。
我还使用附加到 a 的 UIPercentDrivenInteractiveTransitionUIScreenEdgePanGestureRecognizer
来滑动视图控制器。
一切正常,除了调用dismissViewControllerAnimated:completion:
, 之前:
- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext
被称为滑出屏幕的视图控制器的框架设置为:
(0 0; 320 568)
导致它在动画运行之前暂时“闪烁”,并从屏幕外的 2/3 滑回全屏。
通过在视图控制器上对 UIView 进行子类化,我可以在其中设置一个断点以-setFrame
显示该方法:
[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:animation:]
正在调用-setFrame
。(0 0; 320 568)
为什么要这样做?如何防止它在动画开始之前设置帧?