Редактировать
Даже лучше, чем в предыдущем решении, просто переключить порядок запуска и установить:
[self setImage:[UIImage imageNamed:[NSString stringWithFormat:@"frame-%d_29.png", self.frameSet]]];
[self startAnimating];
После того, как возиться немного больше,Я обнаружил, что решение NSTimer на самом деле работает, если вы установите задержку в 29/30 секунды, то есть ~ 0,97:
- (void)doAnimation
{
[self setAnimationRepeatCount:1];
[self setAnimationDuration:1];
[self startAnimating];
[NSTimer scheduledTimerWithTimeInterval:0.97f
target:self
selector:@selector(onTimer:)
userInfo:nil
repeats:NO];
}
- (void)onTimer:(NSTimer *)theTimer
{
[self stopAnimating];
[self setImage:[UIImage imageNamed:[NSString stringWithFormat:@"frame-%d_29.png", self.frameSet]]];
}