2012-11-15 10 views
8

Ich habe eine uitableview mit benutzerdefinierten Zellen eingerichtet.Mehrere Sektionen in UITableView einrichten

Ich möchte diese in Abschnitte mit einem Titel. Mit Blick auf das unten Foto, das ich für das folgende Layout suchen:

Section - Profil Benutzerdefinierte Zelle - wwwwwwwwwwwwww ...
Abschnitt - Anwendung
Benutzerdefinierte Zelle - Spiele
Benutzerdefinierte Zelle - Teile
Benutzerdefinierte Zelle - bewerten
Benutzerdefinierte Zelle - Einstellungen
Benutzerdefinierte Zelle - Hilfe
Benutzerdefinierte Zelle - Abmelden

I ca Sehen Sie, wie Sie einen Abschnitt hinzufügen und die Zeilen in einem Abschnitt steuern. Dadurch werden die Zellen jedoch in mehrere Abschnitte dupliziert. Ich bin mir nicht sicher, wie ein Abschnitt mit einer Zeile und ein Abschnitt mit 6 Zeilen erstellt werden soll. Ich möchte diese Abschnitte auch so gestalten, dass sie wie der Facebook-Menüstil angezeigt werden.

Sollte ich stattdessen benutzerdefinierte Zellen für die tatsächlichen Abschnitte erstellen und keine Auswirkung auf die Auswahl der Abschnitte (Zellen) haben? Hier

ist der Code für die UITableView

static NSString *CellIdentifier = @"Cell"; 
LeftMenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if (cell == nil) { 

    NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"LeftMenuTableViewCell" owner:nil options:nil]; 

    for (UIView *view in views) { 
     if([view isKindOfClass:[UITableViewCell class]]) { 
      cell = (LeftMenuTableViewCell*)view; 


     } 
    } 
} 

enter image description here

Antwort

22

definieren Sie könnten mehrere Abschnitte und Zeilen in es wie folgt:

- (UIView *) tableview:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIView view; 
    if(section == 0) { 
     // Initialise view for section 1 
    } else { 
     // Initialise view for section 2 
    } 
} 

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 2; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

    return ((section == 0) ? 1 : 6); 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // return appropriate cell(s) based on section 
    if(indexPath.section == 0) 
    { 
     // Return 1 cell 
    } 
    else if(indexPath.section == 1) 
    { 
     switch(indexPath.row) { 
      case 0: // Initialize cell 1 
        break; 
      case 1: // Initialize cell 2 
        break; 
      ... 
     } 
    } 
    return cell; 
} 
+0

Dank dieser groß ist. Was ich suche ist, den Abschnitt Header als solche zu stylen. Ist das möglich, oder würde ich eine benutzerdefinierte Zelle für die erste Zelle (Abschnittsüberschrift) benötigen? In meiner Frage würde Abschnitt als Header für die benutzerdefinierte Zelle fungieren. Also, wenn ich eine benutzerdefinierte Zelle brauche, wäre es benutzerdefinierte Abschnitt Zelle, dann benutzerdefinierte Zelle, dann benutzerdefinierte Abschnitt Zelle, dann 6 andere benutzerdefinierte Zellen ...? – StuartM

+0

Sie können verschiedene Ansichten im Abschnitt mit 'viewForHeaderInSection' hinzufügen. Ich habe meine Antwort aktualisiert – user427969

+0

Dank kann ich das hinzufügen. Aber wie soll ich die Abschnitte gestalten? Wie sollten sie benutzerdefinierte Zellen sein, oder sollte ich die Unteransicht codieren? – StuartM

Verwandte Themen