カスタムトランジションを使用して、呼び出されたときにView Controllerを画面から2/3スライドさせ、- presentViewController:animated:completion:
呼び出されたときに再びスライドさせますdismissViewControllerAnimated:completion:
。
UIScreenEdgePanGestureRecognizer
ビューコントローラーをスライドさせるために、に接続された UIPercentDrivenInteractiveTransition も使用しています。
dismissViewControllerAnimated:completion:
前に を呼び出す場合を除いて、すべて正常に機能します。
- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext
画面からスライドしたView Controllerのフレームと呼ばれ、次のように設定されます。
(0 0; 320 568)
アニメーションが実行される前に一時的に「フラッシュ」し、画面外の 2/3 から全画面にスライドします。
View Controller で UIView をサブクラス化する-setFrame
ことで、メソッドを示すブレークポイントを設定できます。
[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:animation:]
で呼び出し-setFrame
てい(0 0; 320 568)
ます。
なぜこれを行うのですか?アニメーションが始まる前にフレームを設定しないようにするにはどうすればよいですか?