在项目中用到scrollToRowAtIndexPath,但程序一旦调用scrollToRowAtIndexPath就出错,经分析是数据源和tableview中cell不同步的原因, 比如,dataArray中有3个元素,而tableview中只显示了2个元素,当你scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:2 时当然就出错了。
所以调用前要确保数据源data source 和 tableview中的数据是一致的,调用scrollToRowAtIndexPath之前最后调用一下[self.dataTableView reloadData];
id lastOject = [self.dataArray lastObject];
int indexOfLastRow = [self.dataArray indexOfObject:lastOject];
[self.dataTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:indexOfLastRow inSection:0]
atScrollPosition:UITableViewScrollPositionBottom
animated:YES];