2009-05-29 15 views
201

Sto cercando un modo per rimuovere completamente la linea di separazione in un UITableView quando in modalità normale. Questo viene fatto automaticamente in gruppo, ma questo cambia anche le dimensioni della tabella in un modo che è difficile da misurare. Ho impostato il colore della linea del separatore su colorClear. Ma questo non risolve completamente il problema.C'è un modo per rimuovere la linea di separazione da un UITableView?

Mentre sto provando a disegnare una vista di sfondo personalizzata nelle celle, e voglio che le celle siano senza soluzione di continuità, la linea di un pixel che rimane nel mezzo mi sta causando problemi. Esiste una soluzione più elegante quindi utilizzare una vista raggruppata e quindi allungarla?

+0

Modifica 'separatorInset' come in questa risposta http://stackoverflow.com/a/8561820/1418457 – onmyway133

risposta

422

È possibile farlo con la proprietà UITableViewseparatorStyle. Assicurati che la proprietà sia impostata su UITableViewCellSeparatorStyleNone e che tu sia impostato.

Objective-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

In Swift (prima 3)

tableView.separatorStyle = .None 

In Swift 3

tableView.separatorStyle = .none 
+32

Puoi anche farlo in IB, a proposito (separatore => nessuno). –

+1

Questo sembra solo rimuovere le linee di separazione all'interno di una sezione di tabella. C'è un modo per rimuovere le linee di separazione * tra le sezioni *? – devios1

+4

La linea tra le sezioni non è in realtà una linea, ma la vista della sezione. Puoi cambiare la vista implementando 'tableView: viewForHeaderInSection:' dal protocollo 'UITableViewDelegate'. –

62
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
} 
14

ho ancora avuto una linea di colore grigio scuro dopo il tentativo l'altro risponde. Ho dovuto aggiungere le seguenti due righe per rendere tutto "invisibile" in termini di righe tra le celle.

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
self.tableView.separatorColor = [UIColor clearColor]; 
+0

Questo ha funzionato per me. Nel mio caso, la linea di separazione non appariva effettivamente tra le celle, ma in realtà da qualche parte nel mezzo di esse. – Elliot

61

È possibile farlo anche nello storyboard/editor xib. Basta impostare Seperator su none.

enter image description here

9

In Swift:

tableView.separatorStyle = .None 
1

Nel vostro viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) 
{ 
    [self.tableView setSeparatorInset:UIEdgeInsetsZero]; 
} 
2

Nel metodo viewDidLoad, dovete scrivere questa linea.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone; 

Codice di funzionamento.

5

C'è un bug su iOS 9 beta 4: la linea di separazione appare tra UITableViewCell s anche se si imposta separatorStyle su UITableViewCellSeparatorStyleNone dallo storyboard. Per aggirare questo problema, devi impostarlo dal codice, perché al momento c'è un bug dallo storyboard. Spero che lo risolveranno nella beta futura.

Ecco il codice per impostarlo:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
+0

Sì, immagino che per noi sarà un lavoro manuale :( –

5

Nell'interfaccia Builder impostare tabella vista separatore "n"

enter image description here e quelle linee di separazione che compare dopo l'ultima cella può essere rimuovi seguendo approccio. L'approccio migliore è assegnare Vista vuota a TableView FooterView in viewDidLoad

self.tableView.tableFooterView = UIView()

Problemi correlati