我想知道当我向下滚动到在swift4中有很多节的tableView单元格的底部时如何检测。
我知道我可以使用此功能检测到它,
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {}
,但仅在有1个部分时有效。
当有很多部分时,请让我知道如何检测表格视图单元格的底部。
答案 0 :(得分:2)
您可以使用UIScrollViewDelegate
并选中contentOffset
extension YourViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentSize.height - scrollView.contentOffset.y - scrollView.frame.height < 100 {
// only 100 pt are left from the bottom
}
}
}
答案 1 :(得分:0)
您可以通过两种方式获取该信息。一种方法是询问您的模型,并与给定的indexPath节和行进行比较,以检查它是否为最后一个节/单元。其次,要求tableView委托方法从模型中获取相同的数据(因为tableView与模型同步)。
答案 2 :(得分:0)
根据您要检查的内容,您可以执行以下操作:
override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.section == tableView.numberOfSections - 1 {
print("will display last section")
if indexPath.row == tableView.numberOfRows(inSection: indexPath.section) - 1 {
print("will display last row")
}
}
}
答案 3 :(得分:0)
您可以通过验证tableview的scrollViewDidScroll委托来发现tableview滚动到底部...并验证数组的最后一部分
extension YourViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if someFlag == SectionArray.count - 1
{
if scrollView.contentSize.height - scrollView.contentOffset.y - scrollView.frame.height < 100 {
// only 100 pt are left from the bottom
}
}
}
}