Как выполнить анимацию последовательности изображений и перехватить ее завершение - PullRequest
0 голосов
/ 10 января 2012

У меня есть приложение с вкладками, и когда я нажимаю на вторую вкладку, необходимо выполнить анимацию, а затем выполнить другие операции.Я реализовал анимацию с [imageView startAnimating];, и все работает хорошо.Проблема в том, что я не знаю, как перехватить конец процесса анимации, чтобы выполнить другие операции.Я знаю, что в UIImageView нет методов делегатов.Я знаю, что свойство imageView.isAnimating бесполезно.Я знаю, что с помощью NSTimer операция выполняется в конце таймера, даже если, например, в моем случае пользователь изменил вкладку.

Есть идеи, как решить эту проблему?Как перехватить конец анимации?

Ответы [ 2 ]

0 голосов
/ 10 января 2012

Попробуйте это при загрузке вашего UIImageView:

[UIView transitionWithView: destinationView
           duration:0.2f
           options:UIViewAnimationOptionTransitionFlipFromLeft
           animations:^ {
              //Funky Animation 
           } 
           completion:^(BOOL finished) {
               if(finished) {
                   //Funky Completion Code
               }
           }];

или

[UIView transitionFromView: startView
           toView: destinationView
           duration:0.2
           options:UIViewAnimationOptionTransitionFlipFromLeft
           animations:^ {
              //Funky Animation 
           } 
           completion:^(BOOL finished) {
               if(finished) {
                   //Funky Completion Code
               }
           }];

       completion:NULL];
0 голосов
/ 10 января 2012

Я считаю, что использование NSTimer - единственный способ получить желаемое поведение.Однако, когда срабатывает таймер, я включаю проверку в любой вызываемый метод, чтобы убедиться, что вкладка, о которой вы говорите, все еще открыта;или вы можете сделать недействительным таймер, как только пользователь сменит вкладки.

...