这是我使用的代码:
这会以一种非常奇怪的方式滚动tableview。但是如果我将滚动代码放在插入之前,它就可以正常工作,只是它会忽略最新插入的行。也就是说,它会滚动到倒数第二行而不是滚动到最后一行(当然,因为它在插入新行之前滚动)。因此,我认为这段代码滚动到应该滚动到的位置没有问题。问题可能来自于向表视图插入行时违反了滚动表视图的动画。
我正在做一个聊天视图。每次用户发送或接收消息时,我都会将包含消息的行插入到表视图中,并将其滚动到底部。这就是为什么我在这里使用tableView。我尝试使用带有标签的scrollView,它可以正常工作,但是tableView在聊天视图中似乎更受欢迎。
我在考虑使用scrollView还是tableView,然后我发现苹果内置的信息应用程序使用的是tableView,所以我选择了tableView。如果scrollView与Label相比tableView更好,请告诉我。
无论如何,在插入新行后如何将tableView滚动到底部呢?
//inserting a row at the bottom first
_numberOfRecords++;
[_tableView beginUpdates];
[_tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:_numberOfRecords-1 inSection:0]] withRowAnimation:UITableViewRowAnimationBottom];
[_tableView endUpdates];
//clear text
_inputField.text = @"";
//then scroll to bottom
CGPoint bottomOffset = CGPointMake(0, _tableView.contentSize.height + 44.0 + _tableView.contentInset.top - _tableView.bounds.size.height);
NSLog(@"%f", _tableView.contentSize.height + 44.0 + _tableView.contentInset.top - _tableView.bounds.size.height);
[_tableView setContentOffset:bottomOffset animated:YES];
这会以一种非常奇怪的方式滚动tableview。但是如果我将滚动代码放在插入之前,它就可以正常工作,只是它会忽略最新插入的行。也就是说,它会滚动到倒数第二行而不是滚动到最后一行(当然,因为它在插入新行之前滚动)。因此,我认为这段代码滚动到应该滚动到的位置没有问题。问题可能来自于向表视图插入行时违反了滚动表视图的动画。
我正在做一个聊天视图。每次用户发送或接收消息时,我都会将包含消息的行插入到表视图中,并将其滚动到底部。这就是为什么我在这里使用tableView。我尝试使用带有标签的scrollView,它可以正常工作,但是tableView在聊天视图中似乎更受欢迎。
我在考虑使用scrollView还是tableView,然后我发现苹果内置的信息应用程序使用的是tableView,所以我选择了tableView。如果scrollView与Label相比tableView更好,请告诉我。
无论如何,在插入新行后如何将tableView滚动到底部呢?