使用 setContentOffset 将 UITableView 滚动到特定位置无法正常工作 - ObjC
Posted
技术标签:
【中文标题】使用 setContentOffset 将 UITableView 滚动到特定位置无法正常工作 - ObjC【英文标题】:Scrolling UITableView to specific position using setContentOffset not working properly - 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
。然后我检查UITableView
的contentOffset
。它是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 的子视图
【参考方案1】:
为什么不使用tableView scrollToRowAtIndexPath:
或tableView scrollRectToVisible:(CGRect)
?这将允许您滚动到特定的行或矩形。 ContentOffset
更适合UIScrollView
。
【讨论】:
在我的表格视图底部(在最后一行)他们是UIButton
。单击该按钮时,我需要在顶部滚动表格视图。我不能使用tableView scrollToRowAtIndexPath:
,因为我也有一个标题(表格视图标题)。而且我还需要显示 Header 的某些部分。
我以为你的问题是关于滚动到底部而不是顶部?
我认为你可以使用'tableView scrollRectToVisible:'并设置rect y = 0,这样它就会滚动到表格顶部以上是关于使用 setContentOffset 将 UITableView 滚动到特定位置无法正常工作 - ObjC的主要内容,如果未能解决你的问题,请参考以下文章
setContentOffset 到滚动视图中的 UIImage 位置
UIScrollView setContentOffset(分页)被触摸屏停止
手动调用 UIRefreshControl 并使用 setContentOffset