UITableView cellForRowAtIndexPath:如何不返回单元格

时间:2014-03-20 20:33:49

标签: ios uitableview

当我从Parse没有返回数据时,我试图从表视图中删除表中的单元格。但无论我尝试什么,我找不到任何解决方案,以防止在包含内容的单元格之前有一个空白单元格(没有数据传递时的单元格)。

这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object

static NSString *simpleTableIdentifier = @"RecipeCell";

    NSString *identifier;
    if (indexPath.row == 0) {
        identifier = @"Cell";
    } else if (indexPath.row == 1) {
        identifier = @"Cell2";
    }

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];


    }

// Configure the cell

if (![@"test"  isEqual: [object objectForKey:@"teacher"]]){

    UILabel *nameLabel = (UILabel*) [cell viewWithTag:101];
    nameLabel.text = @"";

    UILabel *prepTimeLabel = (UILabel*) [cell viewWithTag:102];
    prepTimeLabel.text = @"";


return cell;

} else {

    UILabel *nameLabel = (UILabel*) [cell viewWithTag:101];
    nameLabel.text = [object objectForKey:@"message"];

    UILabel *prepTimeLabel = (UILabel*) [cell viewWithTag:102];
    prepTimeLabel.text = [object objectForKey:@"teacher"];

    return cell;

}
}

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:2)

您无法从UITableView方法控制cellForRowAtIndexPath中的单元格数量 - 您需要从numberOfRowsInSection方法返回正确的值。请参阅UITableViewDataSource protocol referenceTable View Programming Guide

另外,这个代码块 -

if (indexPath.row == 0) {
    identifier = @"Cell";
} else if (indexPath.row == 1) {
    identifier = @"Cell2";
}

有点多余 - 你的所有单元格都是UITableViewCellStyleDefault,所以它们是可以互换的。不需要使用两个不同的标识符 - 如果您打算在将来使用不同的自定义单元格类型,那么您可以保留此概念,但您可能不会直接使用indexPath.row,而是由数据类型驱动你所讨论的行的模型。