我正在尝试画一个用户触摸屏幕的绿色框,等待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();
}
谢谢, 瑞克
答案 0 :(得分:2)
您阻止主UI线程1秒钟,因此无法呈现它。
一种方法是使用System.Timers.Timer
,持续时间为1秒,确保在触发时调用BeginInvokeOnMainThread
来更新用户界面。
BeginInvokeOnMainThread
的示例here。这是System.Timers.Timer的一个。
冷却器选项是使用具有Alpha值的动画,请参阅here。