填充表视图 - 如何在某些条件下不返回单元格

时间:2012-11-10 20:40:00

标签: objective-c ios uitableview

我正在使用其委托方法填充UITableView。在某些情况下,我想不返回任何细胞。但是,以下委托函数要求我将UITableViewCell定义为返回类型。返回nil不起作用(参见代码示例中的switch case)。

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"];

    switch (indexPath.section){
        case 0:
                switch (indexPath.row){
                    case 0:
                        if ([eventItemObject eventDescription]){
                            return cell;
                        } else {
                            return nil;
                        }
                        break;
                        ...
                    default:
                    break;
                }
            break;
            ...
        default:
        break;
    }

    return cell;
}

如何在特定条件下不返回任何细胞?

3 个答案:

答案 0 :(得分:4)

我认为你不能这样做(当我错的时候请纠正我)。 您必须在cellForRow方法中返回UITableViewCell实例。

尝试编辑tableView:numberOfRowsInSection方法。根据您的条件,只返回正确的数字。

答案 1 :(得分:1)

您必须使用tableView:numberOfRowsInSectionnumberOfSectionsInTableView:tableView

处理此问题

答案 2 :(得分:1)

我认为您需要过滤数组以删除[eventItemObject eventDescription]返回false的任何项目,然后使用该过滤后的数组填充表格。这样,您的numberOfRowsInSection和/或numberOfSectionsInTableView将返回正确的数字。