J'ai ajouté un UIProgressView à self.view en tant que sous-vue. J'ai un UITableView avec des lignes chargées. J'ai besoin d'une image dans chaque ligne mais je ne veux pas que l'application les attende, donc je décide d'exécuter NSThread avec le chargement des images. Lorsque j'essaie de mettre à jour la progression de UIProgressView depuis l'intérieur de mon thread, elle n'est pas mise à jour. Ai-je besoin de mettre en place des délégués peut-être?La progression d'UIProgressView n'a pas été mise à jour
Initialisation
progressView = [[[UIProgressView alloc] initWithFrame:CGRectZero] autorelease];
[progressView setFrame:CGRectOffset(CGRectMake(0, 0, 320, 8), 0, 1)];
[self.view addSubview:progressView];
Alors je lance mon fils
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[progressView setProgress:0.0];
NSThread *myThread = [[NSThread alloc] initWithTarget:self
selector:@selector(imageLazyLoading)
object:nil];
[myThread start];
[pool release];
[myThread release];
Ensuite, j'essaie de le mettre à jour
CGFloat pr;
for(int i=0; i < [self.itemsToDisplay count]; i++){
if (!runThread) {
return;
}
pr = (CGFloat)i/(CGFloat)[self.itemsToDisplay count];
[self performSelectorOnMainThread:@selector(updateProgressBar:)
withObject: [NSNumber numberWithFloat:pr]
waitUntilDone: YES];
progressView.progress += 0.5;.............
et rien du tout ....
Vous êtes sûr que c'est ce que vous attendez d'être ?? – Daniel
À quoi ressemble 'updateProgressBar:'? Je ne recommanderais pas de changer progressView.progress n'importe où, mais le fil principal. –
Vous devez mettre à jour l'interface utilisateur sur le thread principal, pas sur un thread secondaire. – Nyx0uf