Я использую настраиваемый переход для сдвига экрана 2/3 экрана просмотра, когда вызывается - presentViewController:animated:completion:
и отбрасывает его снова, когда вызывается dismissViewControllerAnimated:completion:
.
Я также использую UIPercentDrivenInteractiveTransition, прикрепленный к UIScreenEdgePanGestureRecognizer
, чтобы сместить контроллер вида.
Все работает хорошо, за исключением случаев, когда вы вызываете 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)
.
Почему он это делает? Как я могу предотвратить его установку рамки перед началом анимации?