Frage

Ich sende eine Benachrichtigung aus einer Ansicht an eine andere Ansicht. Mein Problem ist, dass die Benachrichtigung in der Ansicht, die ich in meiner CellForrowatIndexPath -Methode rufe, nur gesendet wird, wenn die Tabellenansicht scrollen. Wie kann ich das stoppen und die Benachrichtigung senden, sobald die Bilder heruntergeladen wurden? Hier ist mein Code: https://gist.github.com/756302

Vielen Dank

Mkdev

War es hilfreich?

Lösung

Soweit ich Ihren Code verstehe, wird die Nachricht das Nachladen der gesamten Tabelle ausgelöst. Das sollte zu einer Auffrischung der Zellen führen.

Daher müssen Sie in Zeile 76 einchecken, wenn die Zelle gezeichnet wird .

Das erste, was mir in den Sinn kommt, um dies zu überprüfen, ist, eine Eigenschaft in ReloLoLoLeView festzulegen:

- (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];
}

Und dann um hinzuzufügen

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

Beachten Sie, dass es andere Gründe geben könnte, warum die Tabelle neu geladen wird - die Ansicht hätte verschwunden oder entladen werden können und Sie möglicherweise nicht mehrmals Ihr asynnchrones Laden auslösen möchten.

Andere Tipps

Ihr Code sollte richtig funktionieren, wenn die connectionDidFinishLoading, du rufst das an NSNotificationCenter Um die Benachrichtigung zu senden, gibt es keine Post -Methode in cellForRowAtIndexPath

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top