删除UITableViewCell和所有该单元格的数据

时间:2012-01-17 05:15:25

标签: iphone ios cocoa-touch uitableview

我有一个UITableViewCell。我可以在单元格1中添加和减去textLabel,我也可以删除单元格。这是我的问题,让我说我在textLabel的值加5。此单元格位于0 indexPath(表中的第一个单元格)。当我删除这个单元格并且桌面上现在不再有任何单元格时,我添加了一个新单元格,这个新单元格自动获得与刚刚删除的单元格相同的值。因此,这个新单元格的值为5,我希望单元格的值为1,就像添加单元格时一样。仅当删除单元格并在完全相同的indexPath处添加新单元格时,才会发生这种情况。所以我的问题是:我是否必须删除此单元格“内存”或“数据”才能修复此问题?非常感谢帮助!

的cellForRowAtIndexPath

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

    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
     {
         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
         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];

         //cell.textLabel.text = @"1";


    } 
    //cellText.hidden=!self.editing;
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
    cell.imageView.image = [imageArray objectAtIndex:indexPath.row];  
    cell.textLabel.text = [number objectAtIndex:indexPath.row];


return cell;
}

1 个答案:

答案 0 :(得分:2)

当删除单元格或离开屏幕时,表格视图会保存它们并在以后重新使用它们。因此,您需要在textLabel中重置tableView:cellForRowAtIndexPath:的值。 UITableViewCell类引用说明了这一点:

  

tableView中的表视图委托:cellForRowAtIndexPath:应该在重用单元格时重置所有内容。