2009-05-29 4 views
201

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

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

+0

Изменить 'separatorInset' как в этом ответе http://stackoverflow.com/a/8561820/1418457 – onmyway133

ответ

422

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

Objective-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

В Swift (до 3)

tableView.separatorStyle = .None 

В Swift 3

tableView.separatorStyle = .none 
+32

Вы также можете сделать это в IB, кстати (separator => none). –

+1

Это, похоже, только удаляет разделительные линии внутри секции таблицы. Есть ли способ удалить разделительные линии * между * разделами? – devios1

+4

Строка между разделами - это не строка, а вид раздела. Вы можете изменить представление, выполнив «tableView: viewForHeaderInSection:» из протокола UITableViewDelegate. –

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

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

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

Это сработало для меня. В моем случае линия разделителя фактически не отображалась между ячейками, а фактически где-то посередине. – Elliot

61

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

enter image description here

1

В вашем viewDidLoad:

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

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

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone; 

Настоящий рабочий код.

5

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

Вот код, чтобы установить его:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
+0

Да, я думаю, это будет ручная работа для нас :( –

5

В интерфейсе Builder установлен стол вид разделителя «None»

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

self.tableView.tableFooterView = UIView()

Смежные вопросы