Question

Dans mon utilitaire, j'ai plusieurs SECions avec les titres de date. Les dates sont triées par date dans une nsmutableArray. Mes sections montrent les dates correctes, qui fonctionne bien et que la numérosofrowsinnsection fonctionne également aussi. Pour les cellules TextLabels, j'ai reçu Nsmutablarrays qui sont triés dans le même ordre comme les dates triées. Comment puis-je obtenir le bon texteLabel pour la date correspondante (section)? Avec IndexPath.Section, cela ne fonctionne que lorsqu'il y a 1 ligne dans une section. Lorsque j'ai eu 2 lignes ou plus dans une section, les TextLabels ont des valeurs erronées. Je comprends que cela pourrait être fait avec des dictionnaires, mais je ne pouvais pas trouver une solution.

@property NSMutableArray *dateArray;     //date for my sections
@property NSMutableArray *hoursArray;   //hours for cells textlabel




Mes sections

"January 2014",
"April 2014",
"June 2014"

Mes heures:

"1",
"2",
"3",

//////////// modifier

Quand j'utilise Cell.textlabel.text= [HeureRray ObjectAindex: indexpath.row] Il commence toujours à l'index 0 dans chaque section.

Quand j'utilise Cell.textlabel.text= [HeureRray ObjectAindex: indexPath.section] Il a le tri correct quand il n'y a que 1 ligne chaque section. Mais quand il y a plus de lignes dans une section, la commande est erronée

Était-ce utile?

La solution

Vous devez créer votre type de données trié pour créer simplement une section de Stararray de Rowarray, puis l'utiliser en conséquence. Ensuite, vous pouvez l'utiliser comme ceci:

Cell.textlabel.text = [[sectionArray objectatindex:indexpath.section] objectAtIndex:indexpath.row];

Maintenant, il vous suffit de gérer votre source de données de manière aaccord.

mis à jour: Vous pouvez créer un tableau 2D comme celui-ci

NSMutableArray *dateArray = [[NSMutableArray alloc] init];


for(int i=0; i<=dateData.length; i++)
{
   NSMutableArray *hoursArray = [[NSMutableArray alloc] init];

   for(int j=0; j<=hoursData.length; j++)
   {
     [hoursArray addObject:yourObject];
   }

   [dateArray addObject:hoursArray];
}

Ceci est juste un exemple, mais vous pouvez optimiser en fonction de vos besoins.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top