问题与实现代码如下

问题描述:

这是一个的tableview的委托方法问题与实现代码如下

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
if (check == TRUE){ 


} 

检查是一个布尔值,那么我想,如果支票是真的,它应该跳过一个细胞的创建。 我该怎么办?

+0

的问题是的cellForRowAtIndexPath必须返回UITableCell母猪如果youdon” t返回一个单元格您的应用程序可能会崩溃您需要返回表格源代理并将行数设置为期望的行数,并给出仅包含所需数据的数据源 – Radu 2011-06-16 10:05:25

+0

这没有意义。当你不给一个表时,桌子应该显示什么? – Eiko 2011-06-16 10:07:04

+0

它会返回一个空单元格 – Radu 2011-06-16 10:08:21

在这一点上,你不能,你必须从该方法返回一个单元格,否则你会得到一个异常。关键是在返回该段的行数之前进行检查....

+0

那么其他解决方案可能会为indexPath.row添加一个值否? – CrazyDev 2011-06-16 10:27:54

+0

在返回每个部分的段数和行数时,您应该知道要显示的数据,以便返回相关的计数。当表格视图询问您在特定部分/行组合中的数据时,您应该能够返回所需的数据。我通常根据自己想要显示的内容过滤数据,返回过滤数据的计数,并使用过滤的数据返回正确的单元格。 – 2011-06-16 10:32:27

单元创建依赖于numberOfRowsInSection方法,当你不需要任何单元时返回0。

呜呜,根据UITableView的参考:

的cellForRowAtIndexPath:

返回指定索引路径的表格单元。

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath 

(...)

返回值

表示表或零的小区,如果小区是不可见的或indexPath超出范围的对象。

所以你应该只是返回无,并且细胞将被隐藏,我猜。

这是你想要的吗?

+0

不幸的是,如果tableview THINKS单元格可见返回nil会导致异常。处理此问题的正确方法是仅返回与您希望显示的单元格数相匹配的行数。 – 2011-06-16 10:17:31

+0

如果你实现了数据源,那么你必须返回一个值,但是如果你自己调用这个方法,你可能会得到没有返回的文档 – 2011-06-16 10:20:11

+0

好的,对不起。误解了参考文献。 :/ – tnull 2011-06-16 10:48:51

- (UITableViewCell的*)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath {

return value; 

}