Почему UITableView игнорирует separatorColor для "дополнительных" разделителей с пользовательским разделителем?

Если я установил красный separatorColor в представлении таблицы в iOS 7, а также установил separatorInset to UIEdgeInsetsZero или любое другое пользовательское значение вставки, все дополнительные или "дополнительные" строки имеют цветные разделители по умолчанию. Как я могу это исправить?

Последнее предложение документации на separatorInset подразумевает, что оно каким-то образом управляет дополнительными записями, но я не вижу, как:

В iOS 7 и более поздних версиях разделители ячеек не распространяются вплоть до края представления таблицы. Это свойство устанавливает стандартную вставку для всех ячеек в таблице, так же как rowHeight устанавливает высоту по умолчанию для ячеек. Он также используется для управления "дополнительными" разделителями, расположенными в нижней части таблиц простого стиля.

Установите разделитель в viewDidLoad:

self.tableView.separatorColor = [UIColor redColor];

И вы получите следующее:

enter image description here

И когда вы устанавливаете separatorInset и цвет:

self.tableView.separatorInset = UIEdgeInsetsZero;    // <- any custom inset will do
self.tableView.separatorColor = [UIColor redColor];

Вы получаете следующее:

enter image description here

Почему это происходит и как я могу сделать все разделители красными и установить все вставки разделителя в ноль? Это ошибка?

Ответ 1

Решил, но я не могу объяснить, почему.

Поменяйте порядок двух операторов. Сначала установите цвет, затем вставку:

self.tableView.separatorColor = [UIColor redColor];
self.tableView.separatorInset = UIEdgeInsetsZero;

Все работает:

enter image description here

Ответ 2

Попробуйте добавить это к cellForRowAtIndexPath. Как и установка tableView separatorInsets.

cell.separatorInset = UIEdgeInsetsZero;

В Документах iOS UITableViewCell:

@property (неатомный) UIEdgeInsets separatorInset

Значения вставки для содержимого ячеек.

Вы можете использовать это свойство, чтобы добавить пробел между текущим содержимым ячеек и левым и правым краями таблицы. Положительные значения вставки перемещают содержимое ячейки и разделитель ячеек внутрь и от краев таблицы. Отрицательные значения обрабатываются так, как если вставка установлена ​​в 0.