Я запрограммировал Викторину в XCode, где я создал кнопки UIB, программно отображающие ответ на вопрос. Когда пользователь нажимает кнопку, загружается следующий вопрос и положение кнопок, которое я перетасовал, чтобы не дать правильный ответ в одном и том же месте для каждого вопроса (однако правильный ответ находится под одной и той же кнопкой UIB для каждого вопроса.)
Вот как я создаю свои кнопки:
if (self.buttonRightAnswer == nil)
{
self.buttonRightAnswer = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.buttonRightAnswer addTarget:self action:@selector(rightAnswer) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:self.buttonRightAnswer];
}
self.buttonRightAnswer.frame = CGRectMake(20.0, [[randomPositionArray objectAtIndex:0] floatValue], 280.0, 40.0);
[self.buttonRightAnswer setTitle:[[self.quiz.arrayWithQuestions objectAtIndex:questionNr - 1]valueForKey:@"RightAnswer"] forState:UIControlStateNormal];
Когда пользователь нажимает вправо ответ, загружается следующий вопрос. Здесь это проблема. Следующий вопрос загружается тем же методом только перетасованными позициями, и анимация нажатия кнопки рисуется после перемещения кнопок, в результате чего пользователь видит, где находится правильный ответ.
Как я могу дождаться анимации, прежде чем перемещать кнопки?
Я мог бы решить эту проблему, оставив кнопки в одном месте, перетасовывая вопросы поверх кнопок и сравнивая ответы пользователей с правильным ответом ... но для этого требуется чертовски много кода.