绘制图像,等待1秒钟然后关闭它

时间:2012-02-08 18:48:04

标签: uiimageview xamarin.ios

我正在尝试画一个用户触摸屏幕的绿色框,等待1秒,然后关闭该框。有什么想法为什么这个代码不起作用?盒子永远不会画画。如果我使用一个线程,动画将清除该框。

public static void DrawClick(RectangleF rect, UIView theView)
    {
        var center = Center(rect);
        center.X = center.X + 30f;
        center.Y = center.Y + 30f;
        var greenRect = new RectangleF(center, new SizeF(60f, 60f));
        var clickView = new UIImageView(greenRect);
        clickView.Image = appDelegate.store.GetArt("greenbox.png");
        theView.AddSubview(clickView);
        //Wait 1 second
        System.Threading.Thread.Sleep(1000);
        clickView.RemoveFromSuperview();
    }

谢谢, 瑞克

1 个答案:

答案 0 :(得分:2)

您阻止主UI线程1秒钟,因此无法呈现它。

一种方法是使用System.Timers.Timer,持续时间为1秒,确保在触发时调用BeginInvokeOnMainThread来更新用户界面。

BeginInvokeOnMainThread的示例here。这是System.Timers.Timer的一个。

冷却器选项是使用具有Alpha值的动画,请参阅here