我在 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;
....
}
这会导致越界错误,我似乎无法使其工作。我可以通过调整索引路径的行滚动到倒数第二条评论,但我无法到达最后一项。
基本上,我在评论表中添加评论,添加评论后,我希望表格滚动到最新评论。