web-dev-qa-db-ja.com

UITableViewが一番下までスクロールするとさらにロードされる

ユーザーがテーブルの一番下までスクロールしたときに、より多くのデータをロードし、追加のセルを作成したいと思います。 JSONデータとMySqlを使用しています。

func dataJsonFromURL(url:String)->NSArray
{
    if let data = NSData(contentsOfURL: NSURL(string: url)!) {
        return ((try! NSJSONSerialization.JSONObjectWithData(data, options: [])) as! NSArray)
    }
    else{
        return data
    }
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCellWithIdentifier("NCell", forIndexPath: indexPath) as! TableViewCell22

    cell.backgroundColor = UIColor .clearColor()

    let mindata = (data[indexPath.row] as! NSDictionary)
}
33
osama makki

この方法を使用する必要があります

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
            let lastElement = dataSource.count - 1
            if indexPath.row == lastElement {
                // handle your logic here to get more items, add it to dataSource and reload tableview
                }    
        }
53
Robert TuanVu

Xcode 8、Swift

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    let lastElement = dataSource.count - 1
    if !loadingData && indexPath.row == lastElement {
        indicator.startAnimating()
        loadingData = true
        loadMoreData()
    }
}
17
Abdul Karim

私はこの方法を使用し、それは私のために働いています

 func scrollViewDidScroll(scrollView: UIScrollView) {
    let offsetY = scrollView.contentOffset.y
    let contentHeight = scrollView.contentSize.height

    if offsetY > contentHeight - scrollView.frame.size.height {


        loadMoreDataFromServer()
        self.tableView.reloadData()
    }
}
3
Muhammed

非常に便利なデリゲートメソッドが1つ必要です。

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell , forRowAtIndexPath indexPath: NSIndexPath) {

}

このメソッドは、現在表示されている行を提供します。提供されているindexPathを使用して、テーブルの最下部に近づいていることを判断します。次に、さらにJSONを取得してテーブルをリロードします。

1
Casey Wagner

テーブルビューへのページネーションと呼ばれます。ページネーションは、テーブル上の大きなデータを効果的な方法で表示するために使用されます。 ここにあります Objective-CおよびSwiftこれをご覧ください 質問 .

また、Swift from Here からサンプルをダウンロードできます。

0
sohan vanani