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?

Tricky
quelle
Ä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
Bart Jacobs
quelle
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

Kevin DiTraglia
quelle
62
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
imthi
quelle
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];
Sig Myers
quelle
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 ()

Mohsin Qureshi
quelle
9

In Swift:

tableView.separatorStyle = .None
Mohsen
quelle
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];
Siddhesh Mahadeshwar
quelle
2

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

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Dies funktioniert Code.

Ashu
quelle
1

In Ihrem viewDidLoad:

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