После вызова dismissModalViewController возникли проблемы с анимацией CALayer. - PullRequest
0 голосов
/ 31 мая 2011

У меня есть контроллер вида с анимацией, который запускается при появлении контроллера вида. Каждый раз, когда появляется контроллер представления, анимация должна сбрасываться в определенную позицию и воспроизводить анимацию снова. ViewWillAppear сбрасывает положение анимированных подпредставлений. ViewDidAppear запускает анимацию CALayer. В первый раз он работает хорошо, но когда я представляю контроллер модального вида и отклоняю его, подпредставления контроллера анимированного вида на некоторое время появляются в конечной позиции анимации, затем он сбрасывается в исходное положение, откуда он запускает анимацию. Я убедился, что viewWillAppear вызывается там, где он должен сбрасывать позиции анимированных подпредставлений.

Любые предложения приветствуются. Спасибо за продвижение.

1 Ответ

0 голосов
/ 31 мая 2011

Я думаю, что ваша интуиция верна: когда вы отклоняете модальный контроллер вида, базовый вид отображается снова, и он получает сообщения viewWillAppear / viewDidAppear.

Одна возможность, которую вы должны исправитьэто сбрасывает анимацию в viewDidLoad, которая вызывается после загрузки представления в память (только один раз, если представление не выгружено).Действительно, этот метод используется для завершения инициализации представления и кажется правильным местом для размещения reset анимации.

Если это решение не подходит для вашего приложения (я понятия не имею, кто выв целом) и вам нужно сделать сброс в viewWillAppear, вы можете подумать об установке флага в вашем контроллере, когда отображается модальное представление, так что вы знаете, когда в следующий раз ваш контроллер получит viewWillAppear, что он приходитпосле увольнения модального представления, и вы не делаете сброс.Я не предлагаю вам сделать это, что довольно забавно и не очень гибко, просто говорю, если вы не можете принять другое решение.Намного лучше изменить дизайн вашего приложения, чтобы в viewWillAppear.

не требовался сброс настроек.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...