1

我有一个带有按钮、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];

谢谢!

4

1 回答 1

1

“请注意,从 NSRunloop 的角度来看,NSTimer 对象不是“输入”——它们是一种特殊类型,其中一个意思是它们在触发时不会导致运行循环返回。” (来自 NSRunLoop 类参考) - 所以我认为你阻止了 runloop 继续?也许将计时器放在不同的线程作为解决方案?我自己也有这方面的问题:(

于 2010-04-18T10:19:12.093 回答