Почему UIKit сбрасывает фрейм UIView UIViewController в "полный экран" во время пользовательского перехода?

Я использую пользовательский переход, чтобы сдвинуть контроллер представления 2/3 с экрана, когда - presentViewController:animated:completion: называется и сдвиньте его снова, когда dismissViewControllerAnimated:completion: называется.

Я также использую UIPercentDrivenInteractiveTransition, прикрепленный к UIScreenEdgePanGestureRecognizer скользить вид контроллера.

Все работает хорошо, кроме звонка dismissViewControllerAnimated:completion:, до:

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

Вызывается, что рамка просмотра контроллера сдвинутого экрана установлена ​​на:

(0 0; 320 568)

заставляя его мгновенно "мигать" перед запуском анимации, и он перемещается с 2/3 за пределы экрана обратно на полный экран.

Подклассифицируя UIView на View Controller, я могу установить точку останова в -setFrame это показывает метод:

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

звонит -setFrame с (0 0; 320 568),

Почему он это делает? Как я могу предотвратить установку кадра до начала анимации?

0 ответов

Другие вопросы по тегам