Sto aggiungendo un nuovo elemento nella parte inferiore di UITableView e dopo aver inserito l'elemento, voglio che UITableView scorra fino in fondo per visualizzare l'elemento appena inserito . I nuovi elementi vengono salvati in Core Data e UITableView viene automaticamente aggiornato utilizzando NSFetchedResultsController.Scorrere fino all'ultimo UITableViewCell utilizzando scrollToRowAtIndexPath: atScrollPosition: animato utilizzando NSFetchedResultsControllerDelegate metodi
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath
forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
switch (type) {
case NSFetchedResultsChangeInsert:
NSLog(@"*** controllerDidChangeObject - NSFetchedResultsChangeInsert");
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
//THIS IS THE CODE THAT DOESN'T WORK
[self.tableView scrollToRowAtIndexPath:newIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
break;
....
}
Questo porta a un errore di fuori limite, non riesco a farlo funzionare. Posso scorrere fino al penultimo commento regolando la riga del percorso dell'indice, ma non riesco ad arrivare all'ultimo elemento.
Fondamentalmente, sto aggiungendo un commento a una tabella di commenti e dopo aver aggiunto un commento, voglio che la tabella scorra fino al commento più recente.
grazie @tammo! Questo ha funzionato perfettamente! – djblue2009
La creazione di una proprietà denominata "newIndexPath" genererà l'errore di generazione: 'Proprietà segue la convenzione di denominazione del cacao per la restituzione di oggetti" di proprietà " Basta denominare la proprietà qualcosa di diverso:] –
: D Questo è stato scritto in un momento in cui il compilatore non mi sono lamentato di questo. Cambierò 'newIndexPath' in' insertedIndexPath'. –