2017-04-04 50 views
0

我有一個TableView和1000個單元格。如何在滾動TableView中加載單元格?

我想快速加載TableView。

如何加載25第一個單元格,然後在滾動TableView中加載單元格?

+5

tableview已經可以像這樣工作了。它只會創建可見單元格(以及更多),它不會一次爲整個對象數組創建單元格。 //但是也許你實際上不是在談論你的tableview,而是在填充數組之前以分頁的方式加載數據? – Moritz

+0

你的意思是分頁機制嗎? – svvoff

+0

@alireza,你有解決方案嗎? –

回答

0

正如Eric在他上面的評論中已經提到的那樣,tableView/collectionView是非常優化的。 TableView/CollectionView只加載可見索引路徑範圍內的單元格,然後重新使用同一個單元格。這就是爲什麼你有

tableView.dequeueReusableCell(withIdentifier:)方法在cellForRowAtIndexPath。所有這一切,我相信你正在尋找一種方法來加載數據的塊,而不是一次性加載整個數據集(如Facebook的家庭飼料,加班,你向下滾動到達它加載tableView的結尾幾個帖子)

如果這就是你的要求,那就是所謂的分頁。這需要來自服務器和客戶端的支持。

確保您確定每個響應將包含的最佳數據數量(json對象),並要求您的Web API開發人員實施分頁邏輯。

最後,在iOS上,實施,

override func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     super.scrollViewDidScroll(scrollView) 

     let scrollViewHeight = scrollView.frame.size.height; 
     let scrollContentSizeHeight = scrollView.contentSize.height; 
     let scrollOffset = scrollView.contentOffset.y; 

     if (scrollOffset + scrollViewHeight == scrollContentSizeHeight) 
     { 
      //reached the end of scroll, download next set of data and update your data source 
      self.fetchNextSetOfData() 
      return 
     } 
    } 

您可能需要向服務器發送信息等進行偏移,從中獲取您所期待作爲Web API PARAM從數據的數據和數量

-1

Eric的答案是正確的。但是,如果你真的想加載25第一個單元格,之後接下來的細胞加載,你必須 計算單元格高度的東西像電池這樣

細胞高度=屏幕高度/數字顯示 單元格高度將發生變化如果你有導航控制器。

相關問題