Разделитель UITableview не скрывается для iOS9
я реализовал UITableView
с кодированием. Я также установил UITableViewCellSeparatorStyleNone
. Он скрывается для iOS8 и ниже, но не скрывается с бета-версией iOS9.
8 ответов
пожалуйста, установите стиль разделителя в None в методе layoutSubviews.
при использовании макета на основе ограничений базовая реализация применяет макет на основе ограничений и установка separatorStyle для UITableViewCellSeparatorStyleNone в этом методе скроет разделитель для вас.
из моих исследований, это не 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
может быть виноват)
Я также сталкиваются с той же проблемой. Мой обходной путь был просто установить
tableView.separatorColor = UIColor.clearColor()
.
решение от форум разработчиков apple это сработало для меня:
вы можете удалить разделители с помощью set UITableViewCellSeparatorNone перед каждым методом reloadData (ios 9.1). Я не знаю почему, но UITableView сбрасывает separatorStyle и separatorColor каждый tyme после вызова метода reloadData.
установка стиля разделителя в .None
не работал для меня, поэтому я использовал вставки edge в качестве обходного пути
self.tableView.separatorInset.left = UIScreen.mainScreen().bounds.width
У меня была та же проблема, отлично работала на iOS 8, но показывала разделитель в iOS9. Я уже устанавливал стиль разделителя в none. Следующее решило это для меня
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;
}
это в основном раздавить разделитель с помощью вставки.
эта проблема очень раздражает. И вот мое решение:
override func didMoveToSuperview() {
if self.superview != nil {
self.tableView.separatorStyle = .None
}
}
установите separatorStyle снова, когда представление добавляется в его супервизор.
myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
для Swift
myTableView.separatorStyle = UITableViewCellSeparatorStyle.None
на cellForRowAtIndexPath метод скроет белые линии в iOS 9 и более поздних версиях.