Проблемы с разделами uitableview - ячейки повторяются в каждом разделе

Заранее спасибо за помощь, у меня возникли проблемы с обертыванием кода. Я пытаюсь разделить существующий пользовательский интерфейс, который прекрасно работает на 4 раздела. Как видите, у меня есть 4 раздела, различное количество строк в каждом разделе и имена для каждого раздела. Когда скомпилированы разделы там правильно, но ячейки повторяются. Я пробовал различные методы из других постов на эту тему, а также гуглил информацию, но постоянно получаю кучу ошибок. Если бы кто-нибудь мог показать мне, что я оставляю, я был бы благодарен! Благодарю.

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 4;
}

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
    case 0:
        return 2;
        break;
    case 1:
        return 3;
        break;
    case 2:
        return 2;
        break;
    case 3:
        return 1;
        break;
}
return 0;
}


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSString *sectionHeader = nil;

if(section == 0) {
    sectionHeader = @"Section 1";
}
if(section == 1) {
    sectionHeader = @"Section 2";
}
if(section == 2) {
    sectionHeader = @"Section 3";
}
if(section == 3) {
    sectionHeader = @"Section 4";
}

return sectionHeader;
}

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];   
    [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    [cell.textLabel setNumberOfLines:2];
}

cell.textLabel.font = [UIFont systemFontOfSize:14.0];
cell.detailTextLabel.font = [UIFont systemFontOfSize:11.5];

switch (indexPath.row) {
     // I would like these in Section One
    case 0:
        [cell.textLabel setText:@"Cell one"];
        [cell.detailTextLabel setText:@"subtext one"];
        break;
    case 1:
        [cell.textLabel setText:@"Cell two"];
        [cell.detailTextLabel setText:@"subtext two"];
        break;
 // And these in Section Two
    case 2:
        [cell.textLabel setText:@"Cell three"];
        [cell.detailTextLabel setText:@"subtext three"];
        break;
    case 3:
        [cell.textLabel setText:@"Cell four"];
        [cell.detailTextLabel setText:@"subtext four"];
        break;
    case 4:
        [cell.textLabel setText:@"Cell five"];
        [cell.detailTextLabel setText:@"subtext five"];
        break;
  // And these in Section Three
    case 5:
        [cell.textLabel setText:@"Cell six"];
        [cell.detailTextLabel setText:@"subtext six"];
        break;
    case 6:
        [cell.textLabel setText:@"Cell seven"];
        [cell.detailTextLabel setText:@"subtext seven"];
        break;
  // And this in Section four
    case 7:
        [cell.textLabel setText:@"Cell eight"];
        [cell.detailTextLabel setText:@"subtext eight"];
        break;
    default:
        break;
}

return cell;        
}

1 ответ

Вы должны добавить

switch (indexPath.section)

в cellForRowAtIndexPath.

или условие if-else.

что-то вроде этого:

if (indexPath.section == 0 && indexPath.row == 0)
{
     // for the first row in the first section
}
else if (indexPath.section == 3 && indexPath.row == 2)
{
    // for the 4 section and 3 row
}
Другие вопросы по тегам