【问题标题】:Scrolling UITableView to specific position using setContentOffset not working properly - ObjC使用 setContentOffset 将 UITableView 滚动到特定位置无法正常工作 - ObjC
【发布时间】:2017-04-11 12:00:40
【问题描述】:

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

我使用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];
}

【问题讨论】:

  • 确保您的constraints 正确
  • 是的,我的约束是正确的@Janesh
  • 使用 scrollView 委托代码更新您的问题
  • @karthikeyan 我没有使用滚动视图。
  • 那么你在哪里设置 setContentOffset 代码以及如何找到滚动底部的表格视图,UITableview 是 UIScrollView 的子视图

标签: ios objective-c uitableview uiscrollview contentoffset


【解决方案1】:

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

【讨论】:

  • 在我的表格视图底部(在最后一行)他们是UIButton。单击该按钮时,我需要在顶部滚动表格视图。我不能使用tableView scrollToRowAtIndexPath:,因为我也有一个标题(表格视图标题)。而且我还需要显示 Header 的某些部分。
  • 我以为你的问题是关于滚动到底部而不是顶部?
  • 我认为你可以使用'tableView scrollRectToVisible:'并设置rect y = 0,这样它就会滚动到表格顶部
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多