2017-04-11 35 views
1

我在SO中看到很多答案,它描述了如何将UITableView滚动到特定位置。使用setContentOffset无法正常工作滚动UITableView到特定位置 - ObjC

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

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

我的setContentOffset值是CGPoint(0,199)

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

达到底部后,我使用setContentOffset。然后我检查了UITableViewcontentOffset。它是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]; 
} 
+0

确保您的约束条件合适 – Jack

+0

是的我的约束是正确的@Janesh – Dalvik

+0

使用scrollView委托代码更新您的问题 – karthikeyan

回答

1

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

+0

在我的表格视图底部(最后一行),它们是一个'UIButton'。点击该按钮我需要在顶部滚动表格视图。我不能使用'tableView scrollToRowAtIndexPath:',因为我也有一个标题(表格视图标题)。我还需要显示Header的某些部分。 – Dalvik

+0

我以为你的问题是关于滚动到底部而不是顶部? – Koen

+0

我想你可以使用'tableView scrollRectToVisible:'并设置rect y = 0,这样它就会滚动到表顶部 –