Я реализовал UITableView
с кодировкой. Я также установил UITableViewCellSeparatorStyleNone
. Он скрывается для iOS8 и ниже, но не скрывается с бета-версией iOS9.
Разделитель UITableview не скрывается для iOS9
Ответ 1
Установите стиль разделителя в None в методе layoutSubviews.
При использовании макета, основанного на ограничениях, базовая реализация применяет макет, основанный на ограничениях, и параметр separatorStyle для UITableViewCellSeparatorStyleNone в этом методе скроет разделитель для вас.
Ответ 2
Из моих исследований это не IOS9, но Xcode 7.0 beta 4.
Если я создам приложение с помощью Xcode 7.0 beta 4, то разделители ячеек отображаются даже тогда, когда в Interface Builder установлено значение None. Если я создам тот же код с Xcode 6.4 или 7.0 beta 3, разделители не будут показаны.
Вы можете явно вызвать это в своем ViewController в качестве обходного пути:
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
(Я думаю, ibtool
может быть виноват)
Ответ 3
Решение от форум разработчиков Apple, который работал у меня:
Вы можете удалить разделители, установив UITableViewCellSeparatorNone перед каждым методом reloadData (ios 9.1). Я не знаю почему, но UITableView сбрасывает separatorStyle и separatorColor каждый tyme после вызова метода reloadData.
Ответ 4
Настройка стиля разделителя на .None
не сработала для меня, поэтому я использовал кросс-вставки в качестве обходного пути
self.tableView.separatorInset.left = UIScreen.mainScreen().bounds.width
Ответ 5
Я также сталкиваюсь с той же проблемой. Мое обходное решение состояло в том, чтобы установить
tableView.separatorColor = UIColor.clearColor()
.
Ответ 6
У меня была такая же проблема, отлично работал на iOS 8, но показывал разделитель в iOS9. Я уже не устанавливал стиль разделителя. Следующее разрешило это для меня
if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
cell.preservesSuperviewLayoutMargins = NO;
}
cell.separatorInset = UIEdgeInsetsMake(0.f, 0.f, 0.f, cell.bounds.size.width);
if([cell respondsToSelector:@selector(setLayoutMargins:)]) {
cell.layoutMargins = UIEdgeInsetsZero;
}
Это в основном сквозит разделитель с помощью вставки.
Ответ 7
Эта проблема довольно раздражает. И вот мое решение:
override func didMoveToSuperview() {
if self.superview != nil {
self.tableView.separatorStyle = .None
}
}
Установите параметр separatorStyle снова, когда представление добавлено в его супервизор.
Ответ 8
myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
для Swift
myTableView.separatorStyle = UITableViewCellSeparatorStyle.None
в методе cellForRowAtIndexPath скрывает белые строки в iOS 9 и более поздних версиях.