Есть ли способ удалить разделительную линию из UITableView? - PullRequest
215 голосов
/ 29 мая 2009

Я ищу способ полностью удалить разделительную линию в UITableView в обычном режиме. Это делается автоматически в сгруппированных, но это также изменяет размеры таблицы таким образом, который трудно измерить. Я установил цвет линии разделителя на colorClear. Но это не полностью решает проблему.

Поскольку я пытаюсь нарисовать собственный фоновый рисунок в ячейках и хочу, чтобы ячейки были бесшовными, одна линия пикселя, которая остается между ними, вызывает у меня проблемы. Есть ли более элегантный обходной путь, чем использование сгруппированного представления и его растяжение?

Ответы [ 9 ]

448 голосов
/ 29 мая 2009

Вы можете сделать это с помощью свойства UITableView separatorStyle. Убедитесь, что для свойства установлено значение UITableViewCellSeparatorStyleNone, и вы настроены.

Objective-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

В Свифт (до 3)

tableView.separatorStyle = .None

In Swift 3/4/5

tableView.separatorStyle = .none
62 голосов
/ 18 октября 2013

Вы также можете сделать это в редакторе раскадровки / XIB. Просто установите для Seperator значение none.

enter image description here

62 голосов
/ 02 марта 2010
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
18 голосов
/ 05 июля 2013

У меня все еще была темно-серая линия после попытки других ответов. Мне пришлось добавить следующие две строки, чтобы сделать все «невидимым» с точки зрения строк строк между ячейками.

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.separatorColor = [UIColor clearColor];
9 голосов
/ 26 октября 2014

В Свифт:

tableView.separatorStyle = .None
8 голосов
/ 15 июня 2016

В интерфейсе Builder установлен разделитель табличного представления "Нет"

enter image description here и те разделительные линии, которые показаны после последней ячейки, могут быть удалены с помощью следующего подхода. Наилучший подход - назначить пустой вид табличному виду FooterView в viewDidLoad

self.tableView.tableFooterView = UIView ()

5 голосов
/ 07 августа 2015

В iOS 9 beta 4 есть ошибка: разделительная линия появляется между UITableViewCell s, даже если вы установили separatorStyle в UITableViewCellSeparatorStyleNone из раскадровки. Чтобы обойти это, вы должны установить его из кода, потому что на данный момент есть ошибка в раскадровке. Надеюсь, они исправят это в следующей бета-версии.

Вот код для его установки:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
2 голосов
/ 24 марта 2015

В методе ViewDidLoad вы должны написать эту строку.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Это рабочий код.

1 голос
/ 02 марта 2015

В вашем viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...