2011-08-27 9 views
14

Sto usando sotto il codice per creare un aspetto più grande e più pulito su un UITableView semplice (non raggruppato). Funziona bene a meno che non abbia una tabella vuota, quindi l'altezza della cella è impostata all'altezza normale. Ho lo standard Separatorstyle (le linee grigie) così sembra brutto se è vuoto.L'altezza delle celle UITableview non sta funzionando in una tabella vuota?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    return 75; 
} 

Qualche idea su come risolvere questo problema?

EDIT:

trovato una soluzione ancora migliore dove neppure non visualizzare le linee se la tabella è "vuoto" e testo visualizza guida invece.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if ([dataArray count] == 0) { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
     [pleaseAddStuffText setHidden:NO]; 
    } else { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; 
     [pleaseAddStuffText setHidden:YES]; 
    } 
    return [dataArray count]; 
} 
+1

Per "tabella vuota", intendi il tuo 'numberOfSectionsInTableView:' e/o 'tableView: numberOfRowsInSection:' restituisce 0? –

+0

Correggere il mio buon signore. – David

+1

quindi il tuo 'tableView: heightForRowAtIndexPath:' non dovrebbe mai essere chiamato, puoi impostare un breakpoint per verificarlo. –

risposta

33

Dovreste essere in grado di forzare un altezza di riga in ogni momento impostando rowHeight, anche se il conteggio delle righe è 0.

self.tableView.rowHeight = 75.0; 

È anche possibile impostare in IB.

heightForRowAtIndexPath sembra essere chiamato solo se una cella viene impostata in cellForRowAtIndexPath, mentre questa è una proprietà di tableview ed è sempre presente.

+0

Super semplice, funziona perfettamente. –

+0

Funziona anche su NSTableView per coloro che si chiedono. – Andrew

-1

Cosa intendete per tabella vuota? Se la tabella completa è vuota, il numero restituito della sezione per la tabella è vuoto. Ciò significa che nulla verrà mostrato sul tavolo.

Se si dispone di una riga di tabella vuota = cella di tabella, è necessario assicurarsi che lo cell at indexpath restituisca qualcosa in cui è necessario solo inserire valori vuoti. Quindi avrai una linea vuota tra le altre linee della tabella.

Che cosa è esattamente/dovrebbe essere vuoto?

+0

Tabella vuota = Nessun dato/cella da visualizzare. Immagino l'altezza tra lo stile Separator. – David

Problemi correlati