【发布时间】:2011-06-03 16:11:51
【问题描述】:
我使用每秒触发一次的 NSTimer 并更新一个显示事件前剩余时间的标签。
到目前为止我工作得很好。问题是当我滚动 TableView 时,我的标签没有更新,因为 MainThread 被触摸/滚动事件阻塞。
我曾考虑为 Timer 创建第二个线程,但无论如何我无法从后台线程更新标签。我不得不将它与 performSelector... 放在 MainThread 上,它会像以前一样卡住。
有没有办法在滚动时更新标签?
【问题讨论】:
-
对于 Swift,您可以使用 Timer#scheduledTimer(timeInterval:target:selector:userInfo:repeats:),因为它“创建一个计时器并以默认模式将其安排在当前运行循环中”。