2012-02-08 40 views
0

我想画一个绿色的方块,用户触摸屏幕,等待1秒,然后解雇盒子。任何想法,为什么这段代码不工作?盒子从不画。如果我使用线程,则动画会清除该框。画一个图像,等待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(); 
    } 

感谢, 里克

回答

2

您封锁1秒在主UI线程,所以没有办法为它渲染。

其中一种方法是使用System.Timers.Timer,持续时间为1秒,确保在触发UI时更新UI BeginInvokeOnMainThread

实施例hereBeginInvokeOnMainThread。这是System.Timers.Timer的一个。

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

相关问题