Как проверить, что UIImageView завершил свою анимацию - PullRequest
2 голосов
/ 03 февраля 2012

Я новичок в разработке для iPhone. Я использую UIImageView для анимации изображений в массиве. Я решаю, что анимация остановлена ​​через свойство с именем isAnimating. Но это всегда возвращает истину.

Я хочу убедиться, что анимация завершена или для завершения анимации осталось некоторое время.

Пожалуйста, дайте мне знать, как я могу это проверить.

Ответы [ 3 ]

1 голос
/ 03 февраля 2012

Создайте свойство BOOL IsAnimating, затем выполните этот код

{
     [UIView beginAnimations:@"Animation of ImageVIew Begins" context:nil];
           IsAnimating =YES;

     [UIView setAnimationDuration:0.4]; //you can put your time
     NSLog(@" Animating");
     [UIView setAnimationDelegate:self];
     [UIView setAnimationDidStopSelector:@selector(AnimationComplete)];

// Your animation code here     
     [UIView commitAnimations];
}


- (void) AnimationComplete
{
  isAnimating = NO;
}

Ваша переменная BOOl будет ДА, пока анимация не будет завершена .. затем она изменится на НЕТ

0 голосов
/ 03 февраля 2012

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

0 голосов
/ 03 февраля 2012

Вы должны делать анимацию внутри анимационных блоков:

[UIView animateWithDuration:duration animations:^{
    //animation code here
} completion:^(BOOL finished)
{
    //this will be called when the animation is finished
}];

edit: этот ответ неправильный и, вероятно, не должен был быть принят, потому что любой, кто приезжает сюда ищет правильный ответ: this отвечает на этот вопрос, я думаю

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