UITableViewの下部に新しいアイテムを追加しています。アイテムを挿入した後、UITableViewを一番下までスクロールして、新しく挿入されたアイテムを表示します。新しいアイテムはCoreDataに保存され、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;
....
}
これは範囲外のエラーにつながります、私はそれを機能させることができないようです。インデックスパスの行を調整することで、最後から2番目のコメントまでスクロールできますが、最後の項目に移動できません。
基本的に、コメントのテーブルにコメントを追加します。コメントを追加した後、テーブルを最新のコメントまでスクロールします。