10

カスタムトランジションを使用して、呼び出されたときに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)ます。

なぜこれを行うのですか?アニメーションが始まる前にフレームを設定しないようにするにはどうすればよいですか?

4

0 に答える 0