2012-01-30 60 views
2

你会不会像我这样善良地帮助我解决这样的问题: 我必须用单元格填充tableView,我也有一个用对象填充单元格的数组。 问题是 - 如果对象不符合某些条件,如何跳过创建单元格?我的意思是如何写的东西,如:如何管理创建UITableViewCells?

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
if(objectIsOk) { 
    //create cell 
} 
else { 
    //do nothing 
} 
return cell; 

注:我没有对象的数组访问它给了我每indexPath.row对象动态

回答

2

我不确定什么你的意思是“跳过创建单元格”。您的表格视图数据源是要求要为每个cellForRowAtIndexPath:调用返回一个单元格,这将针对您所说的表格将包含的每个部分中的每一行调用。

如果你想返回一个空白单元格,那么为什么不只是做这样的事情:

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = nil; 

    if (objectIsOk) { 
     // Create normal cell 
    } else { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BlankCell"]; 
    } 

    return cell; 
} 

你也可以在heightForRowAtIndexPath:委托方法返回的零高度,使它看起来,这不是在那里,就像所以:

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (objectIsOk) { 
     return 44.0f; 
    } else { 
     return 0.0f; 
    } 
} 
+0

是的,我明白,我必须回到小区,但我需要这个空白单元格将不可见在所有:( – Stas 2012-01-30 12:15:08

+0

那么有什么错我的回答你说的意思是“不会?完全可见“?它需要在那里......你也可以返回高度o在'heightForRowAtIndexPath:'委托方法中使用0表示它不在那里。 – mattjgalloway 2012-01-30 12:28:39

+0

>您也可以在heightForRowAtIndexPath:delegate方法中返回零高度,以使其看起来不在那里。 这是什么对我的作品谢谢!你能形成答案作为答案,以便我可以接受它吗? – Stas 2012-01-30 14:33:04