У меня очень конкретная проблема, и я еще не нашел решения. У меня есть IBAction для нажатия кнопки. То, что я хочу сделать, когда эта кнопка нажата, это:
воспроизвести звуковой файл (это звук длиной около 5 секунд)
мигающие слова на экране (это также около 5 секунд)
Я хочу, чтобы это происходило одновременно, поэтому общее время составляет около 5 секунд (слова мигают во время воспроизведения звука).
В итоге я получаю то, что сначала мелькают слова, затем воспроизводится звук. Я никогда не могу заставить их идти одновременно. Интересно также, что я никогда не могу заставить звук воспроизводиться первым, даже если он находится в самом начале действия.
Я пробовал NSThread звук, exec, сброс CATransaction, но ничего не может сделать их одновременными.
любые идеи, кстати, я начинающий программист, так что извините, если не описал правильно.
-(IBAction) playButtonClick:(id)sender {
int i;
[_audioPlayer play];
for (i=0; i<10; i++){
[self.model getNextWord];
[self displayWord];
[CATransaction flush];
usleep(550000); // word on screen for 0.55 seconds
}
}
[CATransaction flush] требуется, иначе все, что я увижу, будет самым последним словом.
usleep
? Не держи интерфейс в заложниках. Нитьmain
должна быть свободной. Рассмотрим этот пост: stackoverflow.com/questions/6835472/< /а> - person SwiftArchitect   schedule 29.01.2016