Удалить UITableViewCell и ВСЕ данные этой ячейки - PullRequest
0 голосов
/ 17 января 2012

У меня есть UITableViewCell. Я могу добавить и вычесть 1 из ячейки textLabel, а также могу удалить ячейки. Вот моя проблема, допустим, я добавляю 5 к значению textLabel. И эта ячейка находится в 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 Ответ

2 голосов
/ 17 января 2012

Когда ячейки удаляются или уходят с экрана, табличное представление сохраняет их и использует их позже. Поэтому вам нужно сбросить значение textLabel в tableView:cellForRowAtIndexPath:. Ссылка класса UITableViewCell говорит это:

Представитель табличного представления в tableView: cellForRowAtIndexPath: должен всегда сбрасывать все содержимое при повторном использовании ячейки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...