2011-04-27 53 views
0

我想显示一些图片与等待2秒之前显示其他。 所以我试图用旧的C99做:睡眠(300),但用户界面不更新。一个循环在自己的线程

我试过的第二件事是: 1.在自己的线程创建方法

[NSThread detachNewThreadSelector:@selector(gameIt) toTarget:self withObject:nil]; 
  1. 则在该方法与睡眠:

    [NSThread sleepForTimeInterval:1];

但同样的问题,用户界面不会更新。 我做错了什么?请帮帮我。谢谢。

回答

2

只要你在主线程上sleep,你就会停止UI。

对于NSThread的类方法scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:,您可能会有一些运气。您必须保留一些上下文,以便您的方法的每次调用都能知道该做什么,但这不会让您的用户界面停滞不前,并且它会为您提供3秒钟(或其他)的时间间隔。

+2

我会想办法让更多的普通....任何时候,你正在使用的睡眠()'你是做错了。 ;) – bbum 2011-04-27 19:37:13

+0

同意。 OP提到用户界面在使用睡眠时不会更新,所以我在这种情况下表达了我的警告。 :-)但我喜欢你的表现! +1! – 2011-04-27 19:44:22

0

在后台线程上运行你的处理,但是当你编辑的UI,你需要performSelectorOnMainThread

[view performSelectorOnMainThread:@selector(setNeedsDisplay) withObject:nil waitUntilDone:YES];