我有带标签的UIView,它显示秒表的时间。我从Timer方法设置标签。以下是代码:
ivarTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0
target:self
selector:@selector(updateTimer)
userInfo:nil
repeats:YES];
我的更新方法如下所示:
- (void)updateTimer {
...
self.myLabel.text = @"someChangedStr";
}
效果很好。但是在视图中我有UITableView,如果我滚动TableView,self.myLabel.text会停止更新。我应该使用线程还是其他东西?
答案 0 :(得分:1)
您可以在另一个线程上运行计时器,但必须始终在主线程上执行UI更新。 但是,请尝试将NSTimer添加到UITrackingRunLoopMode,以便在跟踪窗口上的触摸时仍然会触发。
[[NSRunLoop mainRunLoop] addTimer:ivarTimer
forMode:UITrackingRunLoopMode];