我正在使用其委托方法填充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;
}
如何在特定条件下不返回任何细胞?
答案 0 :(得分:4)
我认为你不能这样做(当我错的时候请纠正我)。 您必须在cellForRow方法中返回UITableViewCell实例。
尝试编辑tableView:numberOfRowsInSection
方法。根据您的条件,只返回正确的数字。
答案 1 :(得分:1)
您必须使用tableView:numberOfRowsInSection
或numberOfSectionsInTableView:tableView
答案 2 :(得分:1)
我认为您需要过滤数组以删除[eventItemObject eventDescription]返回false的任何项目,然后使用该过滤后的数组填充表格。这样,您的numberOfRowsInSection和/或numberOfSectionsInTableView将返回正确的数字。