我想删除tableview的单元格,它们也是空的并且也是隐藏的

时间:2013-10-09 11:06:34

标签: iphone objective-c uitableview

我想在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;

}

2 个答案:

答案 0 :(得分:0)

只需从tableArray删除该数据,然后重新加载table,这将删除该单元格。

答案 1 :(得分:0)

您的数据源必须反映您需要在表视图中显示的内容,在cellForRowAtIndexPath中您必须配置(并在需要时为alloc / init)单元格,当不需要单元格时,它将自动由表格视图释放。

P.S。您发布的代码是OMG ... O.O