我目前正在一个项目中,我要求和解析控制器中的多个html网站。为了向用户提供一些反馈,我创建了第二个视图,在处理数据期间显示该视图。它显示一个状态标签和一个进度条。在我的控制器中,我有几点要更新标签文本。不幸的是,这只有时有效。我想那是因为标签只会在一段时间内重新绘制一次,而我试图这样做的次数可能比每秒一次更多。如何频繁更新UILabel?
用[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];
}
请进入您的个人资料http://stackoverflow.com/users/345144/jagse并接受先前问题的答案。这给予信贷的地方,信用是为了帮助你的人。 – iwasrobbed 2010-08-11 13:45:01
你知道你装载手机的cpu有多沉重吗?如果你想把它搞清楚,它可能永远没有时间重绘。另外,您可能需要记住这一点:http://blogs.msdn.com/b/oldnewthing/archive/2010/05/25/10014185.aspx#10014738 – Douglas 2010-08-11 14:34:04