Gibt es eine Möglichkeit, die Trennlinie aus einer UITableView zu entfernen?


225

Ich suche nach einer Möglichkeit, die Trennlinie in einer UITableView im einfachen Modus vollständig zu entfernen. Dies erfolgt automatisch in Gruppen, ändert jedoch auch die Abmessungen der Tabelle auf eine Weise, die schwer zu messen ist. Ich habe die Farbe der Trennlinie auf colorClear gesetzt. Dies löst das Problem jedoch nicht vollständig.

Während ich versuche, eine benutzerdefinierte Hintergrundansicht in den Zellen zu zeichnen, und ich möchte, dass die Zellen nahtlos sind, verursacht mir die dazwischen verbleibende Pixelzeile Probleme. Gibt es eine elegantere Problemumgehung, als eine gruppierte Ansicht zu verwenden und sie dann zu dehnen?


Ändern Sie separatorInsetwie in dieser Antwort stackoverflow.com/a/8561820/1418457
onmyway133

Antworten:


454

Sie können dies mit der UITableViewEigenschaft tun separatorStyle. Stellen Sie sicher, dass die Eigenschaft auf festgelegt ist UITableViewCellSeparatorStyleNoneund Sie festgelegt sind.

Ziel c

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

In Swift (vor 3)

tableView.separatorStyle = .None

In Swift 3/4/5

tableView.separatorStyle = .none

39
Sie können dies übrigens auch in IB tun (Trennzeichen => keine).
Bart Jacobs

1
Dies scheint nur die Trennlinien innerhalb eines Tabellenabschnitts zu entfernen. Gibt es eine Möglichkeit, die Trennlinien zwischen Abschnitten zu entfernen ?
Devios1

4
Die Linie zwischen Abschnitten ist nicht wirklich eine Linie, sondern die Ansicht des Abschnitts. Sie können die Ansicht ändern, indem Sie sie tableView:viewForHeaderInSection:über das UITableViewDelegateProtokoll implementieren .
Bart Jacobs

64

Sie können dies auch im Storyboard / XIB-Editor tun. Setzen Sie Seperator einfach auf none.

Geben Sie hier die Bildbeschreibung ein


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

18

Ich hatte immer noch eine dunkelgraue Linie, nachdem ich die anderen Antworten versucht hatte. Ich musste die folgenden zwei Zeilen hinzufügen, um alles in Bezug auf Zeilenzeilen zwischen Zellen "unsichtbar" zu machen.

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

Das hat bei mir funktioniert. In meinem Fall erschien die Trennlinie nicht zwischen den Zellen, sondern irgendwo in der Mitte.
Elliot

10

In der Schnittstelle Builder Set Tabellenansicht Trennzeichen "Keine"

Geben Sie hier die Bildbeschreibung ein und diejenigen Trennlinien, die nach der letzten Zelle gezeigt werden, können durch folgenden Ansatz entfernt werden. Der beste Ansatz besteht darin, tableView FooterView in viewDidLoad eine leere Ansicht zuzuweisen

self.tableView.tableFooterView = UIView ()



5

Es gibt Fehler ein iOS 9 Beta 4: Die Trennlinie erscheint zwischen UITableViewCells , auch wenn Sie setzen separatorStyleaufUITableViewCellSeparatorStyleNone aus dem Storyboard. Um dies zu umgehen, müssen Sie es über den Code festlegen, da ab sofort ein Fehler im Storyboard vorliegt. Ich hoffe, sie werden es in der zukünftigen Beta beheben.

Hier ist der Code zum Einstellen:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

2

In der ViewDidLoad-Methode müssen Sie diese Zeile schreiben.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Dies funktioniert Code.


1

In Ihrem viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.