删除单元格时,UITableViewCells文本标签将设置为单元格

时间:2012-01-26 04:59:33

标签: iphone ios cocoa-touch uitableview

我有一个UItableView我可以添加和删除单元格。我可以更改cell.textLabel.text属性。如果我向我的cell.textLabel.text添加13 ...

enter image description here

如果我删除了TOP单元格,那个单元格的textLabel会被设置为在桌面上移动的单元格...

enter image description here

我该如何解决这个问题?我希望能够删除一个单元格,让它保持自己的textLabel。如果需要,这是我的cellForRow方法:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
    static NSString *identifier = @"Cell";

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

         addBtn = [[UIButton alloc]init];
         addBtn =[UIButton buttonWithType:UIButtonTypeRoundedRect];
         [addBtn setFrame:CGRectMake(220,10,25,55)];
         [addBtn addTarget:self action:@selector(addLabelText:) forControlEvents:UIControlEventTouchUpInside];
         [addBtn setTitle:@"+" forState:UIControlStateNormal];
         [addBtn setEnabled:YES];
         [cell addSubview:addBtn];

         subBtn = [[UIButton alloc]init];
         subBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
         [subBtn setFrame:CGRectMake(260,10,25,55)];
         [subBtn addTarget:self action:@selector(subtractLabelText:) forControlEvents:UIControlEventTouchUpInside];
         [subBtn setTitle:@"-" forState:UIControlStateNormal];
         [subBtn setEnabled:YES];
         [cell addSubview:subBtn];
     } 
    //cellText.hidden=!self.editing;
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
    cell.imageView.image = [imageArray objectAtIndex:indexPath.row];  
    cell.tag = indexPath.row; // Important for identifying the cell easily later
    cell.textLabel.text = [self.number objectAtIndex:indexPath.row];

return cell;
}

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

删除单元格时,UITableView会重新绘制其中的所有单元格。在删除单元格时,您还需要从数据源中删除相应的对象(在您的情况下,数组self.number),以便数据源数组中的对象对应表格单元格的新索引