我在SO中看到了很多答案,它们描述了如何将UITableView滚动到特定位置。
我使用setContentOffset
滚动到特定位置。
我遇到一个奇怪的问题。如果我的tableView
滚动了一半,则setContentOffset
正常工作。但是,当我滚动到tableView
的末尾然后使用setContentOffset
时,表视图会滚动一些。
我的setContentOffset
值为CGPoint(0,199)
。
[self.tableView setContentOffset:CGPointMake(0,199) animated:NO];
触底之后,我使用
setContentOffset
。然后我检查contentOffset
的UITableView
。它是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
。