Czy istnieje sposób na usunięcie linii separatora z UITableView?

225

Szukam sposobu całkowitego usunięcia linii separatora w UITableView w trybie zwykłym. Odbywa się to automatycznie zgrupowane, ale powoduje to również zmianę wymiarów tabeli w sposób trudny do zmierzenia. Ustawiłem kolor linii separatora na colorClear. Ale to nie rozwiązuje całkowicie problemu.

Gdy próbuję narysować niestandardowy widok tła w komórkach i chcę, aby komórki były płynne, jedna linia pikseli, która pozostaje pomiędzy nimi, powoduje mi problemy. Czy istnieje bardziej eleganckie obejście niż używanie zgrupowanego widoku, a następnie rozciąganie go?

Zdradliwy
źródło
Zmień separatorInsetjak w tej odpowiedzi stackoverflow.com/a/8561820/1418457
onmyway133

Odpowiedzi:

454

Możesz to zrobić za pomocą UITableViewwłaściwości separatorStyle. Upewnij się, że właściwość jest ustawiona na UITableViewCellSeparatorStyleNonei jesteś ustawiony.

Cel C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

W trybie Swift (przed 3)

tableView.separatorStyle = .None

W Swift 3/4/5

tableView.separatorStyle = .none
Bart Jacobs
źródło
39
Nawiasem mówiąc, możesz to zrobić w IB (separator => none).
Bart Jacobs
1
Wydaje się to tylko usuwać linie separatora w sekcji tabeli. Czy istnieje sposób na usunięcie linii separatora między sekcjami?
devios1
4
Linia między sekcjami nie jest tak naprawdę linią, ale widokiem przekroju. Możesz zmienić widok, implementując tableView:viewForHeaderInSection:z UITableViewDelegateprotokołu.
Bart Jacobs
64

Możesz to zrobić również w edytorze scenorysów / Xib. Po prostu ustaw Seperator na none.

wprowadź opis zdjęcia tutaj

Kevin DiTraglia
źródło
62
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
imthi
źródło
18

Po próbie innych odpowiedzi wciąż miałem ciemnoszarą linię. Musiałem dodać następujące dwa wiersze, aby wszystko było „niewidoczne” pod względem wierszy między komórkami.

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.separatorColor = [UIColor clearColor];
Sig Myers
źródło
To zadziałało dla mnie. W moim przypadku linia separatora nie pojawiała się między komórkami, ale gdzieś pośrodku.
Elliot
10

W interfejsie Konstruktora ustaw separator widoku tabeli „Brak”

wprowadź opis zdjęcia tutaj i te linie separatora, które są pokazane po ostatniej komórce, można usunąć, postępując zgodnie z tym podejściem. Najlepszym rozwiązaniem jest przypisanie pustego widoku do tableView FooterView w viewDidLoad

self.tableView.tableFooterView = UIView ()

Mohsin Qureshi
źródło
9

W Swift:

tableView.separatorStyle = .None
Mohsen
źródło
5

Wystąpił błąd w iOS 9 beta 4: linia separatora pojawia się między UITableViewCells, nawet jeśli ustawisz separatorStylena UITableViewCellSeparatorStyleNonez serii ujęć. Aby obejść ten problem, musisz ustawić go z kodu, ponieważ na razie występuje błąd z scenorysu. Mam nadzieję, że naprawią to w przyszłej wersji beta.

Oto kod, aby to ustawić:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Siddhesh Mahadeshwar
źródło
2

W metodzie ViewDidLoad musisz napisać ten wiersz.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

To działa Kod.

Ashu
źródło
1

W twoim viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Aatish Javiya
źródło