我有一个简单的应用程序,带有按钮,UIImageView和NSTimer。 定时器每5秒钟重复一次,以使用新图像更新ImageView,而按钮只是停止计时器并切换到另一个视图。
问题在于,当我按下按钮时,几秒钟内没有任何反应(直到计时器再次启动)。
有没有办法让按钮停止计时器并在任何给定时间而不是在计时器间隔之间完成工作?
该按钮在InterfaceBuilder中定义,并连接到代码中的函数。
NSTimer代码:(我已尝试过&而不将其添加到RunLoop中)。
updateTimer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(updateImageViews) userInfo:nil repeats:YES];
NSRunLoop* runLoop = [NSRunLoop currentRunLoop];
[[NSRunLoop currentRunLoop] addTimer:updateTimer forMode:NSDefaultRunLoopMode];
[runLoop run];
NSRunLoop* runLoop = [NSRunLoop currentRunLoop];
[[NSRunLoop currentRunLoop] addTimer:updateTimer forMode:NSDefaultRunLoopMode];
[runLoop run];
谢谢!
答案 0 :(得分:1)
“请注意,从NSRunloop的角度来看,NSTimer对象不是”输入“ - 它们是一种特殊类型,其中一个意思是它们不会导致运行循环在它们触发时返回。” (来自NSRunLoop类参考) - 所以我认为你阻止runloop继续?也许把计时器放到另一个线程作为解决方案? 我自己也有问题:(