2010-12-22 35 views
1

我正在使用所有的UIKit,并且为了原型设计的目的只是将所有的逻辑推到了主viewController中。我在viewDidLoad中创建了一些UIViews,隐藏了一些,然后设置NStimer在4秒内隐藏隐藏的。此计时器在模拟器中完美触发,但绝不会在iPad上触发。为什么会发生这种情况,我甚至应该寻找什么?为什么我的计时器在iPad模拟器上工作,但不在iPad上?

这是我设置我的视图和计时器的地方。

- (void)viewDidLoad { 

[super viewDidLoad]; 

//snipped out long code that adds UIViews as subviews and runs fine 
curtainView.hidden=YES; 
questionLabel.hidden=YES; 

[NSTimer scheduledTimerWithTimeInterval:4 
           target:self 
           selector:@selector(dropCurtain:) 
           userInfo:nil 
           repeats:NO]; 

[NSTimer scheduledTimerWithTimeInterval:5 
           target:self 
           selector:@selector(askQuestion:) 
           userInfo:nil 
           repeats:NO]; 

}

而这里的时候第一个定时器是最多被调用的功能。这不会在iPad上运行。

-(void)dropCurtain:(NSTimer *)timer{ 
curtainView.hidden=NO; 
//curtainView.alpha=.5; 
[self.view bringSubviewToFront:curtainView]; 
[self.view bringSubviewToFront:triesLabel]; 

}

+0

后一些代码您正在使用。 – WrightsCS 2010-12-22 17:42:07

+0

看起来我的Timer正在触发,我可以在dropCurtain函数中遍历所有行......但屏幕并没有改变,视图也没有被隐藏起来。 – 2010-12-22 19:20:41

回答

1

您的回调可能不会在主线程中调用,用户界面变化需要从主线程才起作用。如果是这样的话有预约电话在主线程到选择NSObject中的方法,你可以从你的回调调用此操作UI

(抱歉,不靠近我的工作电脑)

相关问题