2013-01-21 76 views
1

我在tableview中顯示文件。在cellForRowAtIndexPath中,我只想顯示某些類型的文件。通過這樣做,我可以顯示空單元格在uitableviewcell中隱藏空行

if (document is folder) { 
     display folder details; 
    } 
    else (document is not folder) { 
     display empty cell; 
    } 

但那些仍然存在(隱藏)如何擺脫這些行:

我做這樣的事情。詳情請看照片。

enter image description here

+0

考慮使用UITableViewStyleGrouped,它應該隱藏空單元格 –

+0

在綁定到UITableView之前,可能會稍微更改體系結構並檢查數據(在是否是文件夾)?根據所提供的信息,這看起來更有效率。 – Jacco

回答

1

要你需要首先創建文件夾只有一個數組「隱藏」的細胞。你不是真的要隱藏單元格,而只是在表格數據源數組中包含正確的對象。

在你viewDidLoad,遍歷雖然整個文件陣列,並添加任何文件夾到一個單獨的folderArray像這樣:

_folderArray = [NSMutableArray new]; 
for(Document *doc in documentsArray) 
{ 
    if(doc is a folder) 
    { 
     [_folderArray addObject:doc]; 
    } 
} 

使用在您所有的的tableView委託&數據源的方法,而不是documentsArray是folderArray。

+0

感謝您指點我正確的方向。我知道我做錯了,但無法弄清楚什麼。 :| –

+0

沒問題 - 祝你好運! – RyanG

2

我認爲你應該重新考慮這個問題,cellForRowAtIndexPath:永遠不應該被稱爲一個不存在的單元格。確定您的數據集中有多少個文件夾並返回該數字tableView:numberOfRowsInSection:

然後,您不必擔心一旦到達cellForRowAtIndexPath:就會隱藏它,因爲它是一個應該創建的真實單元。

+0

謝謝。這和下面的答案有所幫助。 :) –