Подтвердить что ты не робот

Разделитель UITableview не скрывается для iOS9

Я реализовал UITableView с кодировкой. Я также установил UITableViewCellSeparatorStyleNone. Он скрывается для iOS8 и ниже, но не скрывается с бета-версией iOS9.

4b9b3361

Ответ 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 и более поздних версиях.