在uitableviewcell中隐藏空行

时间:2013-01-21 21:03:37

标签: ios objective-c uitableview

我在tableview中显示文件。在cellForRowAtIndexPath中,我想只显示某些类型的文件。

我正在做这样的事情:

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

通过这样做,我可以显示空单元格,但那些仍然存在(隐藏)如何摆脱这些行。有关详细信息,请参阅图片。

enter image description here

2 个答案:

答案 0 :(得分:2)

我认为您应该重新考虑这个问题,永远不应该为不存在的单元格调用cellForRowAtIndexPath:。确定数据集中可用的文件夹数量,并在tableView:numberOfRowsInSection:

中返回该数字

然后,您无需担心在达到cellForRowAtIndexPath:后隐藏它,因为它是应该创建的真实单元格。

答案 1 :(得分:1)

要“隐藏”单元格,首先需要创建一个仅包含文件夹的数组。你不是真的要隐藏单元格,而只是在表数据源数组中包含正确的对象。

viewDidLoad中,迭代整个文档数组并将任何文件夹添加到单独的folderArray中,如下所示:

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

在你的所有tableView委托&中使用该folderArray;数据源方法而不是documentsArray。