UITableView分页willDisplay调用一次又一次迅速

时间:2018-07-15 10:35:48

标签: ios swift xcode uitableview pagination

我在stackoverflow和google上搜索此问题后,尝试在UITableView中实现分页,我得到了很多方法,但是在所有解决方案中都面临着相同的问题,在willDisplay最后一个单元格方法中反复调用,所以分页不起作用在我移到最后一个单元格之前,它会循环加载数据,请自我指导。当获取所有数据时,isGettingMoreData为false。

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if !self.isGettingMoreData && indexPath.row >= (self.datasource.count - 1) {
            self.isGettingMoreData = true
             loadmore(pagenum)
        }
}

我正在像这样使用scrolview,但是通过这种方式,我需要拖到最后才能加载更多我不想这样的方式

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {

        //Bottom Refresh

        if scrollView == table{

            if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
            {


                if !isLoading{

                    isLoading = true  
                     loadmore()

1 个答案:

答案 0 :(得分:0)

要在表视图或集合视图中实现分页,可以将代码放在scrollViewDidScroll方法中。这是我使用的示例代码:

func scrollViewDidScroll(_ scrollView: UIScrollView) {        

    if moreResultsAvailable {
        if let lastVisibleIndexPath = self.collectionView.indexPathsForVisibleItems.last {
            if let dataCount = dataArray.count {
                let dif = abs(dataCount - lastVisibleIndexPath.row)

                if dif == 0 {
                     pageNo += 1
                     fetchMoreData()
                }
            }
        }
    }
}