我在SO中看到了很多答案,它们描述了如何将UITableView滚动到特定位置。

我使用setContentOffset滚动到特定位置。

我遇到一个奇怪的问题。如果我的tableView滚动了一半,则setContentOffset正常工作。但是,当我滚动到tableView的末尾然后使用setContentOffset时,表视图会滚动一些。

我的setContentOffset值为CGPoint(0,199)

[self.tableView setContentOffset:CGPointMake(0,199) animated:NO];

触底之后,我使用setContentOffset。然后我检查contentOffsetUITableView。它是169

我无法弄清楚到底是什么问题。

编辑::

我正在使用以下代码。当按下最后一个单元格中的按钮时:
- (void)userPressedSubmitButtonOnLastCell
{

[self updateData];
[self.tableView reloadData];
[self performSelector:@selector(scrollTableView) withObject:nil afterDelay:0.5];
}

- (void)scrollTableView
{
 [self.tableView setContentOffset:CGPointMake(0,199) animated:NO];
}

最佳答案

为什么不使用tableView scrollToRowAtIndexPath:tableView scrollRectToVisible:(CGRect)?这将允许您滚动到特定的行或矩形。 ContentOffset更适合UIScrollView

10-08 05:45