Dodaję nowy element na dole UITableView i po wstawieniu elementu chcę, aby UITableView przewinął do samego dołu, aby wyświetlić nowo wstawiony element . Nowe pozycje są zapisywane w danych podstawowych, a UITableView jest automatycznie aktualizowany za pomocą NSFetchedResultsController.Przewiń do ostatniego UITableViewCell za pomocą scrollToRowAtIndexPath: atScrollPosition: animowane za pomocą metod NSFetchedResultsControllerDelegate
- (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;
....
}
To prowadzi do błędu poza granicami, nie mogę sprawić, żeby działało. Mogę przewinąć do drugiego do ostatniego komentarza, dostosowując wiersz indeksu ścieżki, ale nie mogę dostać się do ostatniego elementu.
Zasadniczo dodam komentarz do tabeli komentarzy, a po dodaniu komentarza chcę, aby tabela była przewijana do najnowszego komentarza.
dzięki @tammo! To działało idealnie! – djblue2009
Tworzenie właściwości o nazwie "newIndexPath" wygeneruje błąd kompilacji: 'Właściwość podąża za konwencją nazewnictwa Cocoa dotyczącą zwracania" posiadanych "obiektów' Po prostu nadaj tej właściwości coś innego:] –
: D Zostało to napisane w czasie, gdy kompilator nie narzekał na to. Zmienię 'newIndexPath' na' insertedIndexPath'. –