Это похоже на то, что изображения обновляются только тогда, когда управление возвращается пользователю для ввода.
Это именно то, что происходит. Пользовательский интерфейс обновляется по основному потоку, поэтому обновления не обновляются, пока ваш код работает.
Чтобы достичь желаемого, вам понадобятся таймеры. Взгляните на документацию NSTimer. Вам нужно создать таймер, который запускает метод для изменения второго изображения, а затем запросить таймер для изменения вашего третьего изображения. Существует удобный способ создания таймера, как вам нужно:+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
[NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(updateImage2:) userInfo:nil repeats:NO];
то у вас есть способ:
- (void) updateImage2(NSTimer*)theTimer
{
//Update image 2 here
// play sound 2 here
[NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(updateImage3:) userInfo:nil repeats:NO];
}
Я оставлю это вам для реализации метода updateImage3: ;-)
Выполнение таких обновлений, как это дает основному потоку возможность обновить интерфейс.