需要UITableView的cellForRowAtIndexPath:为某些行不返回任何内容

时间:2013-02-21 20:22:12

标签: ios objective-c cocoa-touch

在我的代码中,不应该在UITableView上向用户显示某些单元格 所以我的dataSource会提供对象,但我想检查我的cellForRowAtIndexPaht是否隐藏了单元格,如果是,则实际上什么都不返回。 因此,细胞的高度将为零,但更重要的是,我想保存我的功能整个细胞的构建。

我试图返回零,但唉,它崩溃了。

2 个答案:

答案 0 :(得分:2)

数据源应该返回表中的实际内容。

您可以轻松创建一个新数组来保存您想要显示的数据,并省略您不想看到的数据(将其保存在主数据源中)。然后,当表视图中的某些行能够被看到时,将它们添加到表数据数组中,并使用UITableView的insertRows方法来动画查看新发布的数据。

答案 1 :(得分:1)

您可以将逻辑移到用于创建UITableView的numberOfSectionsnumberOfRowsInSection方法吗?基本上,无论您使用什么逻辑尝试为这些单元格返回null,都可以移入UITableView类中的numberOfRowsInSection方法,并仅返回可见(非​​隐藏)单元格的数量。

然后,您必须配置cellForRowAtIndexPath方法,通过计算可见行数而不是将数据从数组中拉出来,从数据源中分发单元格。

我不认为你会想要一个期待对象的程序'没有'。

链接到UITableView的Apple参考文档,numberOfSections和numberOfRowsInSections可以很容易地用于逻辑修改表格视图中显示的数据量。