Ячейки, повторяющие другие значения раздела при прокрутке

Я работаю с проблемой в течение 2 дней. И я рекомендовал несколько SO-вопросов, таких как Ссылка 1. В чем проблема, у меня есть таблица групп с 2 строками и секцией подсчета массива. Когда я прокручиваю таблицу, значит, 4-й раздел повторяет значение 1-го, но он хорошо работает до 3-го раздела. Обе строки принимают значение строк 1-го раздела

мой код:

static NSString *CellIdentifier = @"Cell";
cell = (CopyableTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[CopyableTableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 
                                         reuseIdentifier:CellIdentifier] autorelease];
}

cell.delegate = self;

/*UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];

//cell.detailTextLabel.lineBreakMode=UILineBreakModeWordWrap;
cell.detailTextLabel.numberOfLines=2;
cell.detailTextLabel.font=[UIFont systemFontOfSize:14];*/


// Configure the cell...
DLog(@"");
//cell setBackgroundColor:[UIColor colorWithRed:0.7 green:0.7 blue:0.7 alpha:0.8]]
cell.textLabel.textColor = [UIColor blackColor];//[UIColor colorWithRed:0.22 green:0.33 blue:0.53 alpha:0.8];
cell.detailTextLabel.textColor = [UIColor blackColor];  
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    l=indexPath.section;

    switch (indexPath.row) {
        case 0: 
            cell.textLabel.text =@"Quantity";


            if (indexPath.section ==k) {
                    cell.detailTextLabel.text = self.qtyValue;
                    [cell.detailTextLabel setTag:indexPath.section];

            }

        break;
        case 1:
            cell.textLabel.text = @"Unit";



            if (indexPath.section ==j) {
                cell.detailTextLabel.text = [self.unitValue valueForKey:@"val"];
                [cell.detailTextLabel setTag:indexPath.section];                
            }


            break;


        default:
            break;
    }

Может ли кто-нибудь предоставить решение для этого

1 ответ

Если ваше требование таково, у вас есть несколько разделов с 2 строками / ячейками в каждом разделе, тогда я бы посоветовал вам написать следующий код в cellforRowAtIndexPath:

switch(indexPath.row)
{
   case 0:   
   {
      switch(indexPath.section)
      {
          case 0:
          {
             //Statement needs to execute for cell0 in section 0.
          }
            break;
          case 1:
          {
             //Statement needs to execute for cell0 in section 1.
          }
            break;
          case 2:
          {
             //Statement needs to execute for cell0 in section 2.
          }
            break;
          case 3:
          {
             //Statement needs to execute for cell0 in section 3.
          }
            break;
      } 
   }
    break;
   case 1:   
   {
      switch(indexPath.section)
      {
          case 0:
          {
             //Statement needs to execute for cell1 in section 0.
          }
            break;
          case 1:
          {
             //Statement needs to execute for cell1 in section 1.
          }
            break;
          case 2:
          {
             //Statement needs to execute for cell1 in section 2.
          }
            break;
          case 3:
          {
             //Statement needs to execute for cell1 in section 3.
          }
            break;
      } 
   }
     break;
 default:
     break;
}
Другие вопросы по тегам