Прокрутите до последней ячейки UITableViewCell, используя scrollToRowAtIndexPath:atScrollPosition:animated с использованием методов NSFetchedResultsControllerDelegate

Я добавляю новый элемент в нижнюю часть UITableView и после вставки элемента хочу, чтобы UITableView прокручивался до самого низа, чтобы отобразить только что вставленный элемент. Новые элементы сохраняются в Core Data, а UITableView автоматически обновляется с помощью NSFetchedResultsController.

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

   ....
}

Это приводит к ошибке выхода за границы, я не могу заставить ее работать. Я могу прокрутить до предпоследнего комментария, изменив строку индексного пути, но не могу добраться до самого последнего элемента.

По сути, я добавляю комментарий в таблицу комментариев, и после добавления комментария я хочу, чтобы таблица прокручивалась до самого последнего комментария.

7
задан Vladimir 20 June 2012 в 21:46
поделиться