2011-03-14 10 views
6

ho bisogno di eseguirenecessario eseguire reloadSections dopo [self.tableView endUpdates] è fatto animando

[[self tableView] reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationNone]; 

dopo

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller { 
// The fetch controller has sent all current change notifications, so tell the table view to process all updates. 
    [self.tableView endUpdates];  
} 

è fatto l'animazione.

Voglio farlo in questo modo perché ho bisogno di riconfigurare alcune celle nella sezione quando una cella viene cancellata dalla sezione. Questo perché la prima e l'ultima cella della sezione hanno sfondi diversi rispetto alle celle tra loro. Una singola cella ha uno sfondo diverso tutti insieme. Se non si riconfigura le celle lasciate nella sezione, potrebbe dare come risultato una vista akward.

La chiamata a reloadSections durante controllerDidChangeContent è troppo presto e si interrompe perché non è più possibile trovare una cella.

risposta

15

Se si desidera passare più di 1 argomento di un metodo con ritardo, avvolgere la chiamata al metodo in un proprio metodo:

- (void)reloadSections { 
    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:1] 
     withRowAnimation:UITableViewRowAnimationNone]; 
} 

Poi, quando si desidera ricaricare:

[self performSelector:@selector(reloadSections) withObject:nil afterDelay:.2]; 
+0

Ho provato a mettere quella linea prima che la mia dichiarazione endUpdates, ma ottenere un " 'NSInvalidArgumentException', la ragione: '- [UITableView reloadSections:]: selettore non riconosciuto inviati a esempio" msg. – P5ycH0

+0

Oops, è perché il reloadSections richiede 2 argomenti, non 1 ... modifica. – GendoIkari

+0

Grazie, ha risolto il mio problema !! – P5ycH0

2

Cosa a questo proposito?

[CATransaction begin]; 

[CATransaction setCompletionBlock:^{ 
    // animation has finished 
}]; 

[tableView beginUpdates]; 
// do some work 
[tableView endUpdates]; 

[CATransaction commit]; 
Problemi correlati