2017-07-14 4 views
0

bitte schlagen Sie mir vor, wie man Daten wie Baumansicht anzeigt.uitableview wie man Daten mehrere Zellen dynamisch analysiert

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return marrSearchResult.count; 

} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    int iCount=0; 

    if (section==0) { 

     iCount =(int)[marrSearchResult count]; 
    }else if(section==1){ 

     iCount =(int)[[[[marrSearchResult objectAtIndex:section] valueForKey:@"data"] valueForKey:@"result"] count]+1; 
    }else{ 

    } 
} 
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    static NSString *simpleTableIdentifier = @"MyTravelProfileTblCELL"; 

    if (indexPath.section == 0) { 
    }else{ 
    } 
} 

siehe unten Bild desplay ähnliche enter image description here

+0

Können Sie uns die Daten zeigen, das heißt marrSearchResult bekommen ?? – luckyShubhra

+0

[ { "title": "Unterhaltung", "data": [ { "type_title": "Restaurants", "Ergebnis": [ { \t \t \t "place_data": [ { "Name": "Tim Hortons", "Adresse": "1910 Yonge St", "Nummer": "+1 416-481-0209", "Website": "www.google.com" } ] } ] } ] } ] –

+0

@luckySubhra überprüfen Sie bitte oben Array –

Antwort

2

folgenden Schritte aus:

  • Erstellen von benutzerdefinierten Tableview Zelle für Abschnittskopf (Sehenswürdigkeiten, Regierung/Gemeinschaft). Rufen Sie es an PlaceTypeCell
  • Erstellen Sie eine weitere benutzerdefinierte Tabellenansicht Zelle für Zeilen (Museen, Krankenhäuser ...). Lass es uns PlaceNameCell nennen.
  • Rückkehr der Abschnitt zählen als die Anzahl der Haupt-Array (Sie es bereits getan haben)
  • Rückkehr der Zeilenanzahl als die Anzahl der Sub-Arrays auf dem Index der Abschnitt in dem Hauptarray (auch es Sie tat)
  • Jetzt In der cellForRowAtIndexPath, erhalten Sie die Sub-Array von Haupt basierend auf Abschnitt Nummer (indexPath.section). Holen Sie jetzt das erforderliche Zeilenelement (Ortsname und Details) aus dem Unterfeld mit der Zeilennummer (indexPath.row). Verwenden Sie die Daten in diesem Zeilenelement, um die Tabellenzelle aufzufüllen.
  • Jetzt in der viewForHeaderInSection Holen Sie sich die Ortstyp-Details aus dem Haupt-Array mit Abschnitt Nummer und füllen Sie die PlaceTypeCell und Rückgabe als Abschnitt Kopfzeile. Werfen Sie einen Blick auf Best way to create custom UITableview section header in storyboard
  • heightForHeaderInSection
mit der Höhe für Sektionskopf Set

Hoffe, es hilft.

Bearbeiten: Wenn Sie das Format von marrSearchResult zeigen können, wird es einfach zu helfen sein.

1

erstellen Eingabefeld in Format:

NSArray *tourismSection = @[@"Museums", @"Aquariums"]; 
NSArray *govSection = @[@"Hopsital"]; 

NSDictionary *data = @{ 
    @"tourism" : tourismSection, 
    @"gov"  : govSection 
}; 
NSArray *inputs = @[@"tourism",@"gov" ]; 

in numberOfSectionsInTableView

return inputs.count; 

in numberOfRowsInSection:

return [data valueForKey:inputs[indexPath.section]].count; 
Verwandte Themen