Повторите beginAnimations - Все анимации - PullRequest
1 голос
/ 13 марта 2011

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

Я пробовал счетчик повторений, но это будет применяться только к этой конкретной анимации.Как мне создать весь цикл?

Мой код ниже.Заранее спасибо!

[UIView beginAnimations:nil context:nil];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:slideshow cache:YES];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:3];
    [UIView setAnimationRepeatAutoreverses:YES];

    [UIView setAnimationDelay:3];
    imageOne.alpha = 0;
    imageTwo.alpha = 1;

    [UIView setAnimationDelay:6];
    imageTwo.alpha = 0;
    imageThree.alpha = 1;

    [UIView setAnimationDelay:9];
    imageThree.alpha = 0;
    imageFour.alpha = 1;

    [UIView commitAnimations];

1 Ответ

2 голосов
/ 13 марта 2011

Вы можете начать с добавления имени к анимации, чтобы вместо beginAnimations:nil вы указали beginAnimations: @"Button Animations" или что-то в этом роде. Кроме того, вы должны установить делегата анимации на себя. Это можно сделать, добавив следующую строку кода в блок анимации:

 [UIView setAnimationDelegate: self];

Затем вы можете поместить весь этот блок анимации в собственный метод класса (в вашем контроллере представления). Давайте назовем это doAnimation. Это только для безопасной меры. Следующее, что вы должны сделать, это реализовать эту функцию делегата в вашем контроллере представления:

 -(void) animationDidStop: (NSString *) animationID finished:(NSNumber *)finished context:(void *)context{

    if([animationID isEqualToString:@"Button Animation"]){
         [self doAnimation];
    }
 }

Так что в значительной степени это обеспечит повторение ваших анимаций. Если этот метод не работает, дайте мне знать, я не проверял его. Но я думаю, что это сработает.

...