Domanda

io mando una notifica da una vista all'altra vista. Il mio problema è che la notifica nella vista che io chiamo nel mio metodo cellForRowAtIndexPath sta ottenendo soltanto inviato quando la Tableview scorre. Come posso fermare questo e renderlo inviare la notifica una volta che le immagini hanno scaricato? Ecco il mio codice: https://gist.github.com/756302

Grazie

mkdev

È stato utile?

Soluzione

per quanto ho capito il tuo codice, il messaggio attiverà il ricaricamento della intera tabella. Questo dovrebbe portare ad un aggiornamento delle cellule.

In questo modo, avrete bisogno di controllare in linea 76, se è in corso di elaborazione il cellulare perché una ricarica è stato attivato dal traguardo-messaggio (e l'immagine è pronta per il display) o se è necessario avviare il download asincrono dell'immagine.

La prima cosa che mi viene in mente di controllare questo è quello di impostare una proprietà in reloadTableView:

- (void)reloadTableView
{
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"aaa"];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"name" object:nil];
    NSLog(@"removeobserver");
    loadImageFinished = YES;
    // if your table has several sections you'll need to adopt the section number 
    NSIndexSet *indices = [[NSIndexSet alloc] initWithIndex:0];
    [self.tableView reloadSections:indices withRowAnimation:UITableViewRowAnimationFade];
    [indices release];
}

e poi di aggiungere in

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   ...
   if (loadImageFinished) {
      ... 
   } else {
      [asyncImage loadImageFromURL:[NSURL URLWithString:pathImage]];
   }
   ...
}

Si noti che ci potrebbero essere altri motivi per cui la tabella viene ricaricato -. La vista avrebbe potuto essere scomparsi o scaricate e si potrebbe non voler innescare il vostro carico asynnchronous più volte

Altri suggerimenti

Il tuo codice dovrebbe funzionare bene, quando la connectionDidFinishLoading, si chiama la NSNotificationCenter per inviare la notifica, non esiste un metodo Share cellForRowAtIndexPath

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top