C'è un modo per rimuovere la linea di separazione da un UITableView?


225

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 ciò cambia anche le dimensioni della tabella in un modo difficile da misurare. Ho impostato il colore della linea del separatore su colorClear. Ma questo non risolve completamente il problema.

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


Variazione separatorInsetcome in questa risposta stackoverflow.com/a/8561820/1418457
onmyway133

Risposte:


454

Puoi farlo con la UITableViewproprietà separatorStyle. Assicurati che la proprietà sia impostata UITableViewCellSeparatorStyleNonee sei pronto.

Objective-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

In Swift (prima del 3)

tableView.separatorStyle = .None

In Swift 3/4/5

tableView.separatorStyle = .none

39
Puoi anche farlo in IB, comunque (separator => none).
Bart Jacobs,

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. È possibile modificare la vista implementando tableView:viewForHeaderInSection:dal UITableViewDelegateprotocollo.
Bart Jacobs,

64

Puoi farlo anche nell'editor storyboard / xib. Basta impostare Seperator su none.

inserisci qui la descrizione dell'immagine


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

18

Avevo ancora una linea grigio scuro dopo aver tentato le altre risposte. 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];

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

10

Nell'interfaccia Builder set separatore vista tabella "Nessuno"

inserisci qui la descrizione dell'immagine e quelle linee di separazione che sono mostrate dopo l'ultima cella possono essere rimosse seguendo l'approccio. L'approccio migliore consiste nell'assegnare Vista vuota a tableView FooterView in viewDidLoad

self.tableView.tableFooterView = UIView ()



5

C'è un bug di iOS 9 beta 4: appare la linea di separazione tra la UITableViewCells anche se si imposta separatorStyleal UITableViewCellSeparatorStyleNonedallo storyboard. Per ovviare a questo, devi impostarlo dal codice, perché sin d'ora c'è un bug dallo storyboard. Spero che lo risolveranno nella beta futura.

Ecco il codice per impostarlo:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

2

Nel metodo ViewDidLoad, devi scrivere questa riga.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Questo è un codice funzionante.


1

Nel tuo viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.