检测UITableView中当前可见的最后一个UITableViewCell

Posted

技术标签:

【中文标题】检测UITableView中当前可见的最后一个UITableViewCell【英文标题】:Detect the last UITableViewCell of the current visible in UITableView 【发布时间】:2014-02-01 05:15:34 【问题描述】:

我想知道是否有办法检测当前 UITableViewCell 是否是视图中的最后一个,然后当用户按下回车键时,您将使用此代码滚动 UITableView

int cellHeight = 44;
[finishingTableView setContentOffset:CGPointMake(finishingTableView.contentOffset.x,finishingTableView.contentOffset.y + cellHeight) animated:YES];

我有一个带有自定义 UITableViewCells 的 UITableView,每个 UItableViewCell 都有一个 UITextfield,我以编程方式选择 UITableViewCell,然后使单元格文本字段成为第一响应者。我想让用户一直按回车键到 UITableView 的底部,但只有在下一个要选择的 UITableViewCell 不在视野范围内时才开始滚动。

【问题讨论】:

【参考方案1】:

使用UITableViewindexPathsForVisibleRows方法。

NSArray *visibleRows = [self.tableView indexPathsForVisibleRows];
NSIndexPath *lastRow = [visibleRows lastObject];

然后将其与您正在处理的单元格的 indexPath 进行比较。

【讨论】:

visibleRows,我们可以得到TableView的所有indexPath吗?? @iPatel visibleRows 仅包含当前可见(全部或部分)的行的索引路径。 哦,是的,我只是问你,因为我有点困惑。谢谢你让我明白:) 是否有可能获得表的所有 indexPath ? 好的,这行得通我有一个 if 语句告诉我何时到达最后一个单元格,但是我的 setContentOffset 不起作用... 如果这是您的目标,请使用 scrollToRowAtIndexPath:atScrollPosition:animated: 将特定行放在底部(或顶部或中间)。

以上是关于检测UITableView中当前可见的最后一个UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 UITableView 中有多少个单元格可见

Swift - 当最后一行不可见时,如何对 UITableView 的最后一行执行特定操作?

iOS / Swift 3.0:如何确定 UITableView 中当前可见的行?

如何检测最后一个单元格是不是在 UICollectionView 中可见?

Objective C:如何在当前可见帧中设置子视图显示? (UITableView)

向下滚动时,UITableview 看不到最后一个单元格