2013-02-21 43 views
1

在我的代码中,某些单元格不应该显示给UITableView上的用户。
所以我的dataSource会提供对象,但我想检查我的cellForRowAtIndexPaht如果单元格被隐藏,如果是,几乎不返回任何内容。 因此,细胞的高度将为零,但更重要的是,我想保存我的功能,建立整个细胞。需要UITableView的cellForRowAtIndexPath:为某些行返回任何内容

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

回答

2

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

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

1

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

然后,您将不得不配置您的cellForRowAtIndexPath方法,从数据源中按顺序分配单元格,方法是对可见行进行计数,而不是将它们从数组中拉出。

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

链接到Apple Reference Docs for UITableView,可以轻松地使用numberOfSections和numberOfRowsInSections来逻辑修改在表视图中显示的数据量。

相关问题