2012-02-12 11 views
10

Ho un UITableView che contiene x quantità di celle. Tuttavia, voglio avere una distanza di 20 px tra ogni cella. La mia vista tabella contiene solo una sezione.Spazio tra UITableView Cells

Ho cercato su Google e cercato nel forum, ma non ho trovato nulla che funzioni per il mio scopo.

È possibile impostare l'offset del contenuto sulla cella o la visualizzazione di immagini all'interno della cella?

Qualcuno può aiutarmi?

+0

Le celle sono create da un file xib o nel codice? – bneely

+0

customcell nel codice – Magnus

+0

Come ti aspetti che guardi? Quante celle ci sono in media? – bneely

risposta

6

In base al follow-up nei commenti sopra, sembra che si debba utilizzare la proprietà backgroundView di UITableView per impostare l'immagine di sfondo personalizzata, quindi utilizzare una vista tabella raggruppata con una cella per sezione. Per me, questo sembra il modo più rapido e semplice per implementare il tipo di interfaccia utente che stai descrivendo.

porzioni rilevanti del UITableView documentazione API:

@property(nonatomic, readwrite, retain) UIView *backgroundView 
... 
- (NSInteger)numberOfRowsInSection:(NSInteger)section 

E UITableViewDataSource protocollo:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
+0

è quello che ho finito per fare. Grazie uomo! – Magnus

+1

Penso che questa sia una soluzione piuttosto brutta se è necessario presentare un singolo array come una singola sezione con la propria intestazione di sezione e un'altra matrice in un'altra sezione con un'altra intestazione di sezione. –

-3

Nella tua UITableViewDelegate, aggiungere questo seguente metodo:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

Da lì è possibile controllare l'altezza totale di ogni cella in modo indipendente. Non farlo per i tavoli grandi, tuttavia, poiché rallenta le cose.

+3

Già provato. Questo cambia solo l'altezza per ogni cella, non la distanza tra le celle – Magnus

+0

È necessario creare layout di celle che abbiano il padding e l'aspetto che si sta cercando. – kamprath

+0

Questo metodo è una pratica comune per il problema che hai descritto. Se l'hai già provato, dovresti menzionarlo nella domanda originale. – bneely

8

una soluzione alternativa di questo problema è solo implementare il metodo Tableview: heightForFooterInSection come

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ 

    return 5; 
} 

E quindi implementare la tabella View: ViewForFooterInSection come sotto // Restituisce effettivamente un piè di pagina trasparente.

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ 

    UIView *view = [[UIView alloc]init]; 
    [view setAlpha:0.0F]; 
    return view; 

} 
+0

Ho finito per usarlo con un piè di pagina trasparente. - (UIView *) tableView: (UITableView *) tableView viewForFooterInSection: (NSInteger) section { UIView * view = [[[[UIView alloc] init] autorelease]; [visualizza setAlpha: 0.0F]; vista di ritorno; } – estobbart

+0

@estobbart Modificato Grazie. –

+0

L'unico lato negativo di questo è che aggiunge spazio aggiuntivo tra le sezioni e non tra le righe. E se hai bisogno di raggruppare le righe in più sezioni, allora questa soluzione non funziona. – Zorayr

Problemi correlati