代码之家  ›  专栏  ›  技术社区  ›  casillas

按需滚动不断呼叫

  •  0
  • casillas  · 技术社区  · 6 年前

    我正在尝试实现按需滚动呼叫。直到我在屏幕底部滚动,它才开始呼叫 doPaging() 方法,然后下载另一批数据集(另外20项)。然而,当它第一次到达屏幕底部时,即使是小的滚动条也会一直呼叫到底部。

    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
    {   
        if indexPath.row == self.products.count - 1 && !isWating {
            isWating = true
            self.pageNumber += 1
            self.doPaging()
        }
    }
    
    func doPaging() 
    {
        fetchProducts(page: pageNumber , completion: { success in
            if let products = success as? Products
            {
               // keeps calling
                DispatchQueue.main.async {
                    self.products.append(contentsOf:products)
                    self.isWating = false;
                    self.productTableView.reloadData()
                }
            }
        })
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Manish Mahajan    6 年前

    使用此方法。这肯定管用

    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        //Bottom Refresh
        if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height) {
            if !isWating {
                isWating = true
                self.doPaging()
            }
        }
    }