是否有可能从NSIndexPath获取“全局”索引?

时间:2016-08-11 14:52:55

标签: ios uitableview

如果我在UITableView属性NSIndexPath.row上有不同的部分,则会在当前部分中为我提供索引。

是否可以在不考虑部分的情况下获取表格中单元格的绝对索引?

例如:如果一个表有2个部分,第一个部分有10个项目,我想得到第二部分的第一个元素的index = 10.

2 个答案:

答案 0 :(得分:3)

我同意一些评论,这可能不是实现无限滚动的最佳方式。回答你原来的问题,你可以在Swift中做这样的事情:

extension UITableView {
    func globalIndexPath(for localIndexPath: NSIndexPath) -> Int {
        var totalRows = 0
        for i in 0..<localIndexPath.section {
            totalRows += self.numberOfRowsInSection(i)
        }
        return totalRows + localIndexPath.row
    }
}

答案 1 :(得分:0)

如果要检查是否已到达表格视图的末尾,可以使用以下代码执行此操作:

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
    let offset = scrollView.contentOffset
    let bounds = scrollView.bounds
    let size = scrollView.contentSize
    let inset = scrollView.contentInset
    let y = CGFloat(offset.y + bounds.size.height - inset.bottom)
    let h = CGFloat(size.height)

    let reload_distance = CGFloat(-100)

    if (y > (h + reload_distance)) {
        //Do something heree... The code will reach here once the table view reaches the end. 
    }
}