Xamarin IOS瞬间改变按钮的颜色

时间:2014-01-26 20:41:48

标签: ios xamarin

我正在创建一个测验应用程序。用户选择答案,在自动指向下一个问题之前,简要确认答案是正确还是错误。 所以,我有一个视图,它有一个标签和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秒钟?

感谢

1 个答案:

答案 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秒。