我目前正在开发一个项目,我在控制器中请求和解析多个 html 站点。为了给用户一些反馈,我创建了第二个视图,它在数据处理过程中显示。它显示状态标签和进度条。在我的控制器中,我有几个点可以更新标签文本。不幸的是,这只有时有效。我想那是因为标签偶尔会重绘一次,而且我尝试这样做的频率可能比每秒一次的频率更高。
使用 [label setNeedsDisplay] 强制重绘不起作用;
我还创建了一个线程,它使用全局变量的文本更新标签文本,并且每秒在标签上调用 setNeedsDisplay。但结果是一样的。我只看到某些变化,但不是全部。
一切都设置正确,标签永远不会是零。当我记录我的 updateMethod 时,一切似乎都很好。它只是没有显示!
干杯
这是我的线程的代码
- (void)startUpdateStatusThread{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self performSelectorOnMainThread:@selector(updateFrequently) withObject:nil waitUntilDone:NO];
[pool release];
}
- (void)updateFrequently{
NSLog(@"updateFrequently: %@", currentStatus);
test++;
[self.statusLabel setText:[NSString stringWithFormat:@"%@ - %i", currentStatus, test]];
[self.statusLabel setNeedsDisplay];
[NSTimer scheduledTimerWithTimeInterval:0.0001 target:self selector:@selector(updateFrequently) userInfo:nil repeats:NO];
}