2016-12-10 4 views
-1

ユーザーがTableViewの下部に近づいているときに、古典的なデータをロードしようとしています。私は、私はこれが起こっている理由を理解していないここにいくつかの例を見てきましたし、一度だけの50倍以上の代わりに彼らがこれをオフに発射されたのいずれかを実施している、これは私のコードIOSスウィフトスクロールが50回以上実行されています

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "myTable", for: indexPath) as! HomePage 

    if indexPath.row == self.Posts.count - 4 { 
     LoadMore() 
     print("Load More") 
    } 
} 

このコードが設定されていますユーザーが最後の4行目に近づいてより多くのデータを読み込むようにします。 LoadMoreは、ViewDid Loadで初期データを取得するために使用するHTTPリクエストです。私が、LoadMoreがtableViewの内部で起動する回数を見ると、驚くべきことです。このコードは、ユーザーが最後の4行目にいるときに最初に起動しますが、55番目または60番目の時刻までは起動を停止しません。投稿は文字列配列で、データはJsonからのものですが、そのすべてがうまく機能しています。

+0

は、完全なLoadMore含むcellForRowAt' 'の完全な実装をしてください表示します。 – matt

+0

これをwilldisplaycellで呼び出します –

答えて

1

使用Paginationを実装するwillDisplayCell方法:

//Call Web Service after end of Page 

     func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
      if indexPath.row == self.Posts.count - 4 { 
       LoadMore() 
       print("Load More") 
      } 
     }