проблема задержки анимации iPhone - PullRequest
1 голос
/ 13 октября 2010

Я пытаюсь заставить эту анимацию задержаться на 60 секунд и занять 125 секунд для завершения цикла анимации. затем повторять бесконечно. проблема в том, что задержка длится всего 20 секунд. Есть ли предел задержки, который вы можете указать? или, может быть, лучший способ сделать то, что я пытаюсь?

вот мой код:

- (void)firstAnimation {        

NSArray *myImages = [NSArray arrayWithObjects:
                                                     [UIImage imageNamed:@"f1.png"],
                                                     [UIImage imageNamed:@"f2.png"],
                                                     [UIImage imageNamed:@"f3.png"],
                                                     [UIImage imageNamed:@"f4.png"],
                                                     nil];

UIImageView *myAnimatedView = [UIImageView alloc];
[myAnimatedView initWithFrame:CGRectMake(0, 0, 320, 400)];
myAnimatedView.animationImages = myImages;

[UIView setAnimationDelay:60.0];
myAnimatedView.animationDuration = 125.0; 

myAnimatedView.animationRepeatCount = 0; // 0 = loops forever

[myAnimatedView startAnimating];

[self.view addSubview:myAnimatedView];
[self.view sendSubviewToBack:myAnimatedView];

[myAnimatedView release];
}

спасибо за любую помощь.

1 Ответ

3 голосов
/ 14 октября 2010

Вы используете метод setAnimationDelay неверным способом.

setAnimationDelay предназначен для использования при анимации изменений в свойствах анимации для представлений в блоке UIViewAnimations, например:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelay:60];
//change an animatable property, such as a frame or alpha property
[UIView commitAnimations];

Этот код задержит анимацию изменения свойства на 60 секунд.

Если вы хотите отложить UIImageView от анимации своих изображений, вам нужно будет использовать NSTimer.

[NSTimer scheduledTimerWithTimeInterval:60
                                 target:self selector:@selector(startAnimations:)
                               userInfo:nil
                                repeats:NO];

Затем определите селектор startAnimations: следующим образом:

 - (void)startAnimations:(NSTimer *)timer
{
    [myAnimatedView startAnimating];
}

Таким образом, через 60 секунд таймер сработает метод startAnimations:, который запустит вашанимация просмотра изображения.

...