Почему 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)
,
Почему он это делает? Как я могу предотвратить установку кадра до начала анимации?