2012-11-15 17 views
8

Ho impostato una visione utente con celle personalizzate.Impostazione di più sezioni in UITableView

Vorrei questi in sezioni con un titolo. Guardando la foto qui sotto sto cercando il seguente schema:

Sezione - Il mio profilo cella personalizzato - wwwwwwwwwwwwww ...
Sezione - Applicazione
cella personalizzato - Giochi
personalizzato cellulare - Condividi
cellule personalizzato - Tasso di cellule
personalizzato - Impostazioni cellulare
Custom - Aiuto
cella personalizzato - Esci

I ca n vedere come aggiungere una sezione e controllare le righe in una sezione, ma questo duplica le celle in più sezioni, non sono sicuro di come avere una sezione con una riga e un'altra sezione con 6 righe. Voglio anche modellare queste sezioni per mostrare, un po 'come lo stile del menu di Facebook.

Devo creare celle personalizzate per le sezioni effettive e non ho nessuna azione sulla selezione della sezione (cella)?

Ecco il codice per l'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

risposta

22

Si potrebbe definire il numero di sezioni e righe in esso come segue:

- (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

Grazie questo è grande. Quello che sto cercando è di definire l'intestazione della sezione come tale. È possibile, o avrei bisogno di una cella personalizzata per la prima cella (intestazione di sezione). Nella mia domanda la Sezione avrebbe funzionato come intestazione per la cella personalizzata. Quindi, se ho bisogno di una cella personalizzata, sarebbe una cella di sezione personalizzata, quindi una cella personalizzata, quindi una cella di sezione personalizzata, quindi altre 6 celle personalizzate ...? – StuartM

+0

È possibile aggiungere viste diverse nella sezione usando 'viewForHeaderInSection'. Ho aggiornato la mia risposta – user427969

+0

Grazie, posso aggiungere questo. Ma come dovrei modellare le sezioni? Come dovrebbero essere celle personalizzate, o dovrei codificare la sottoview? – StuartM

Problemi correlati