我正在创建一个测验应用程序。用户选择答案,在自动指向下一个问题之前,简要确认答案是正确还是错误。 所以,我有一个视图,它有一个标签和4个不同的按钮,不同的文本来自数据库。当用户选择一个按钮时,它应该在按钮加载不同文本之前闪烁或具有不同的背景颜色几秒钟。
我试过在touchUpInside中这样做。我为按钮设置了不同的颜色,我做了Thread.Sleep(2000)。这是其中一个按钮的TouchUpInside的事件处理程序:
partial void Answer(MonoTouch.Foundation.NSObject sender)
{
// if wrong answer, highlight to red and move on.
((UIButton)sender).backgroundColor = UIColor.Red;
Sleep(2000); // freeze to display the red color for 2 seconds
LoadNextQuestion(); // load the next question method
}
但是颜色只会在下一个问题加载后发生变化。如何让它在那里冻结2秒钟?
感谢
答案 0 :(得分:2)
您可以使用动画执行此操作:
button1.TouchDown += delegate(object sender, EventArgs e) {
UIView.Animate(2,0,UIViewAnimationOptions.Autoreverse,
() => { button2.BackgroundColor = UIColor.Yellow; },
() => { button2.BackgroundColor = UIColor.Green; });
};
这里button1正在触发button2的动画,但你可以将触发器设置为任何东西。此示例仅将按钮的背景颜色从绿色设置为黄色,然后再返回,持续时间为2秒。