Текстовая метка UITableViewCells устанавливается в ячейку при удалении ячейки - PullRequest
0 голосов
/ 26 января 2012

У меня есть UItableView, я могу добавлять и удалять ячейки. Я могу изменить свойства cell.textLabel.text. Если я добавлю 13 к моему cell.textLabel.text ...

enter image description here

и если я удаляю ТОП-ячейку, 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 Ответ

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

Когда вы удаляете ячейку, ваш UITableView и все ячейки в ней перерисовываются.Во время удаления ячейки вам также необходимо удалить соответствующий объект из вашего источника данных (в вашем случае это массив self.number), чтобы объекты в вашем массиве источников данных соответствовали новым индексам ячеек таблицы.1003 *

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