2013-08-17 5 views
0

J'essaie de faire une tableview avec des cellules divisées en sections avec uitableview groupées. J'ai regardé autour de moi et j'ai découvert comment le diviser en sections bien que je sois bloqué pour les faire apparaître dans des groupes comme ils le devraient au lieu de trois groupes avec toutes les cellules dans chaque groupe, ce qui est ce que j'ai obtenu à ce jour après avoir fait un peu de recherche:Comment regrouper des cellules UITableView

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = nil; 
    if ([indexPath section] == 0) { 
     if (indexPath.row == 0) { 
      cell = cell1; 
     } else if (indexPath.row == 1) { 
      cell = cell2; 
     } else if (indexPath.row == 2) { 
      cell = cell3; 
     } 
    } 
    if ([indexPath section] == 1) { 
     if (indexPath.row == 0) { 
      cell = cell4; 
     } else if (indexPath.row == 1) { 
      cell = cell5; 
     } else if (indexPath.row == 2) { 
      cell = cell6; 
     } 
    } 
    if ([indexPath section] == 2) { 
     if (indexPath.row == 0) { 
      cell = cell7; 
     } 
    } 
    return cell; 
} 

bien que quand je cours et aller à ce point de vue l'application se bloque et dans la zone NSLog il arrive avec cette erreur:

*** Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-2380.17/UITableView.m:5471 

Merci à avance

+0

Cela ressemble à une approche complètement fausse. Quels sont cell1, cell2, etc? Vous obtenez des sections en ayant votre tableau de sources de données un tableau de tableaux (généralement). En nombre de sections, vous renvoyez le nombre de votre tableau, et dans numberOfRows, vous renvoyez le nombre de chaque tableau interne. – rdelmar

+0

@rdelmar J'utilise des cellules uitableview qui sont sur le xib et je les tire. C'est ce qu'elles sont – Hive7

+0

Et avez-vous 7 types différents de cellules? – rdelmar

Répondre

1

Les index de ligne commencent à zéro pour chaque h nouvelle section.

Par exemple:

if ([indexPath section] == 2) { 
    if (indexPath.row == 3) { 

devrait être:

if ([indexPath section] == 2) { 
    if (indexPath.row == 0) { 

En outre, les indices de section commencent également à zéro si vous voulez probablement décrémenter chaque index dans vos déclarations si.

+0

J'ai essayé cela mais ne semble pas fonctionner va mettre à jour ma question avec ce que j'ai maintenant – Hive7

Questions connexes