В настоящее время я работаю над проектом, в котором я запрашиваю и анализирую несколько 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];
}