Xamarin IOS Изменить цвет кнопки кратковременно

Я создаю приложение для викторины. Пользователь выбирает ответ, получает краткое подтверждение, правильный ответ или неправильный ответ, прежде чем автоматически перейти к следующему вопросу. Итак, у меня есть представление, в котором есть ярлык и 4 разных кнопки с разными текстами, поступающими из базы данных. Когда пользователь выбирает кнопку, она должна мигать или иметь другой цвет фона в течение нескольких секунд, прежде чем кнопки будут загружены другим текстом.

Я пробовал делать это в touchUpInside. Я установил другой цвет для кнопки, и я делаю Thread.Sleep(2000). Это мой обработчик событий TouchUpInside одной из кнопок:

partial void Answer(MonoTouch.Foundation.NSObject sender)
 {
 // if wrong answer, highlight to red and move on.
 ((********)sender).backgroundColor = UIColor.Red;
 Sleep(2000); // freeze to display the red color for 2 seconds
 LoadNextQuestion(); // load the next question method
 }

Но цвет меняется только после загрузки следующего вопроса. Как я могу затормозить там на 2 секунды?

благодаря

1 ответ

Вы можете сделать это с помощью анимации:

button1.TouchDown += delegate(object sender, EventArgs e) {
 UIView.Animate(2,0,UIViewAnimationOptions.Autoreverse,
 () => { button2.BackgroundColor = UIColor.Yellow; }, 
 () => { button2.BackgroundColor = UIColor.Green; });
};

Здесь button1 запускает анимацию кнопки2, но вы можете настроить триггер на что угодно. Этот образец просто оживляет цвет фона кнопки от зеленого до желтого и обратно. Снова, с длительностью 2 с.

licensed under cc by-sa 3.0 with attribution.