我想在iPhone
应用程序中删除tableview的单元格,这些单元格也是空的并且也是隐藏的。但是这些单元占用了空间。我们使用了这段代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell * cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
if([cell isKindOfClass:[IASKPSTextFieldSpecifierViewCell class]])
{
UITextField *field = ((IASKPSTextFieldSpecifierViewCell*)cell).textField;
[field setTextColor:LINPHONE_MAIN_COLOR];
}
cell.detailTextLabel.textColor = [UIColor blackColor];
// Background View
UACellBackgroundView *selectedBackgroundView = [[[UACellBackgroundView alloc] initWithFrame:CGRectZero] autorelease];
cell.selectedBackgroundView = selectedBackgroundView;
if (indexPath.section==1)
{
if (indexPath.row== 1)
{
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
}
if(indexPath.section==0)
{
//NSLog(@"value is--%@",);
if ([cell.textLabel.text isEqualToString:@"Opus 48kHz"])
{
cell.textLabel.text=@"G.711U-law";
}
if ([cell.textLabel.text isEqualToString:@"Silk 24Khz"])
{
cell.textLabel.text=@"G.711A-law";
}
if ([cell.textLabel.text isEqualToString:@"Silk 16Khz"])
{
cell.textLabel.text=@"GSM";
}
if ([cell.textLabel.text isEqualToString:@"AAC-ELD 22kHz"])
{
cell.textLabel.text=@"iLBC30";
}
if (indexPath.row==6)
{
cell.hidden=YES;
// cell=nil;
}
if (indexPath.row==7)
{
cell.hidden=YES;
//cell=nil;
}
if (indexPath.row==8)
{
cell.hidden=YES;
//cell=nil;
}
if (indexPath.row==9)
{
cell.hidden=YES;
//cell=nil;
}
if (indexPath.row==10)
{
cell.hidden=YES;
//cell=nil;
}
if (indexPath.row==11)
{
cell.hidden=YES;
//cell=nil;
}
}
else
{
cell.hidden=YES;
return cell;
}
self.tableView.separatorColor=[UIColor blackColor];
return cell;
}
答案 0 :(得分:0)
只需从tableArray
删除该数据,然后重新加载table
,这将删除该单元格。
答案 1 :(得分:0)
您的数据源必须反映您需要在表视图中显示的内容,在cellForRowAtIndexPath中您必须配置(并在需要时为alloc / init)单元格,当不需要单元格时,它将自动由表格视图释放。
P.S。您发布的代码是OMG ... O.O