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?


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

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


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

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];

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 ()



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];

2

W metodzie ViewDidLoad musisz napisać ten wiersz.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

To działa Kod.


1

W twoim viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.