如何检测包含多个部分的tableview的底部? (迅速)

时间:2018-09-27 08:55:15

标签: ios swift tableview detect sections

我想知道当我向下滚动到在swift4中有很多节的tableView单元格的底部时如何检测。

我知道我可以使用此功能检测到它,

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {} 

,但仅在有1个部分时有效。

当有很多部分时,请让我知道如何检测表格视图单元格的底部。

4 个答案:

答案 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
    }
}    
}

}