UITableView Sections mit unterschiedlicher Größe füllen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2021 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • UITableView Sections mit unterschiedlicher Größe füllen

    Hallo,

    ich habe eine UITableView mit 2 Sections. Die erste soll 2 Zeilen beinhalten und die andere 4. Nun hab ich zwei Dictionarys, mit 2 bzw. 4 Einträgen. Nun sollen mit dem ersten Dictionary die erste Section gefüllt werden und mit dem 2. die 2. Section.

    Habe folgenden Code:

    PHP-Quellcode

    1. ...
    2. dicTable = [[NSMutableDictionary alloc] init];
    3. dicTable1 = [[NSMutableDictionary alloc] init];
    4. [dicTable setObject:aSN.plant forKey:@"Plant"];
    5. [dicTable setObject:aSN.workplace forKey:@"Workplace"];
    6. [dicTable1 setObject:aSN.startDate forKey:@"Event Start"];
    7. [dicTable1 setObject:aSN.endDate forKey:@"Event End"];
    8. [dicTable1 setObject:aSN.category forKey:@"Category"];
    9. [dicTable1 setObject:aSN.referenceObject forKey:@"Reference Object"];...
    10. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    11. static NSString *CellIdentifier = @"Custom";
    12. ShiftNoteDetailsCell *cell = (SNDetailsCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    13. if (cell == nil) {
    14. NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SNDetailsCell" owner:self options:nil];
    15. cell = (SNDetailsCell *)[nib objectAtIndex:0];
    16. }
    17. if(currentSection == 0){
    18. cell.description.text = [[self.dicTable allKeys] objectAtIndex:indexPath.row];
    19. cell.value.text = [[self.dicTable allValues] objectAtIndex:indexPath.row];
    20. }else{
    21. cell.description.text = [[self.dicTable1 allKeys] objectAtIndex:indexPath.row];
    22. cell.value.text = [[self.dicTable1 allValues] objectAtIndex:indexPath.row];
    23. }
    24. return cell;
    25. }
    26. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    27. // Return the number of rows in the section.
    28. if(section == 0){
    29. currentSection = 0;
    30. return [dicTable count];
    31. }else{
    32. currentSection = 1;
    33. return [dicTable1 count];
    34. }
    35. }
    Alles anzeigen


    Als Exception bekomm ich *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectAtIndex:]: index 2 beyond bounds [0 .. 1]'

    Was ich nicht verstehe, da es ja passen müsste. Habe 2 Einträge in dicTable.
    Was mache ich falsch, bzw. wie kann ich verschieden große Sections mit Daten füllen?

    Vielen Dank & Grüße,
    Andre
  • Der TableView fragt seine Delegates nach der Anzahl an Zeilenobjekten. Wenn du da currentDingens setzt, ist sie am Ende immer 1.

    Edit: Noch so, ein NSIndexPath hat 2 Setter: row und section.
    Mit
    aIndexPath.section kannst du ja dann abfragen, ob es die 1. (index 0) oder die 2. (index 1) section ist.
    Dann machst du noch einen Switch-Case, der dir dann die Zeilen befüllt.
    Gruß

    Robin