You could use an NSTimer. Every time you begin an image animation, you could invoke something like this:
Code:
setTimerWithInterval:(float)interval {
[myTimer invalidate];
myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(timerFired) userInfo:nil repeats:NO];
}
This way, any new animations beginning before current animations finish can reset the timer with its own animation duration as the interval, and the timer will only fire when the last animation is complete.