2016-11-15 6 views
1

私は現在、そこに多くの投稿を持つfirebaseデータベースを持っています。投稿はカスタムセル内のUITableViewControllerに表示されます。一度に10セルの行をロードする - 迅速に

問題は、それが一度にすべてのセルをロードすることである - これは、より多くの記事が来ている多くの時間を取ることができます。

は、どのように私はそれが一度に10の記事を読み込む作り、そして一番下までスクロールしたときに10以上を読み込むことができますか?

これは私が私の記事を取得する方法である:

func startObersvingDB() { 
     FIRDatabase.database().reference().child("feed-items").observeEventType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in 
      var newUpdates = [Sweet]() 



      for update in snapshot.children { 
       let updateObject = Sweet(snapshot: update as! FIRDataSnapshot) 
       newUpdates.append(updateObject) 

      } 

      self.updates = newUpdates.reverse() 
      self.tableView.reloadData() 


     }) { (error: NSError) in 
      print(error.description) 
     } 
    } 

答えて

0

は、ページングがFirebaseで動作するように取得するため、この例を考えてみましょう: Swift iOS: Firebase Paging

やスクロールするときよりをロードするために、あなたのViewController(Swift3でこれを試してみてください):

extension MyViewController:UIScrollViewDelegate { 
func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let offset = scrollView.contentOffset.y 
    if offset > self.tableView.contentSize.height - 50 { //This value is adjustable 
     functionToPullMoreDatabaseItems() 
    } 
} 
} 
+0

これは非常にばかな質問かもしれませんが、より多くの投稿を読み込むためにコンテンツサイズの高さはどうですか? :) –

+0

contentOffset.yがcontentSize.heightに等しいとき、つまり、下にスクロールしたときです。 50を引くと、関数が呼び出されてデータベースに多くのデータがロードされ、データが到達するまでにデータがそこに到達するようになります。 – rmooney