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

Изменение цвета области вставки в разделителе UITableView

У меня есть настраиваемый UITableView, ячейки имеют другой цвет фона (заданный в пользовательском backgroundView). Однако цвет фона применяется только в ячейке, но не распространяется на область вставки разделителя. Как вы можете видеть на скриншоте, есть белая область слева от цветного разделителя.

Как мы можем изменить цвет этой белой линии? Мы хотели бы, чтобы линия "исчезла", установив ее на тот же цвет, что и фон ячейки. Спасибо!

enter image description here

4b9b3361

Ответ 1

Настройка цвета фона ячейки так же, как цвет фона contentView, кажется, дает наилучшие результаты.

cell.backgroundColor = cell.contentView.backgroundColor;

Это будет обрабатывать случаи, когда аксессуар также является неправильным цветом.

Ответ 2

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

Кажется, что ячейки в iOS 7 не всегда подбирают цвет фона таблицы, когда присутствует разделительная вставка, поэтому вам нужно вручную установить фон ячейки clearColor. Интересно, что установка этого значения в раскадровки не сработала для меня, я должен был сделать это в коде. Добавьте это:

cell.backgroundColor = [UIColor clearColor];

когда вы настраиваете ячейку в этой функции делегата:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Ответ 3

Это по умолчанию в iOS 7. Но вы можете изменить его на внешний вид iOS 6. Пожалуйста, попробуйте мой код ниже. Вы будете поражены:

    tableView.separatorColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
    NSString *iosversion = [[UIDevice currentDevice] systemVersion];
    int version = [iosversion intValue];
    if(version>6)
    {
        tableView.separatorInset = UIEdgeInsetsZero;
    }

Свифт 3+:

tableView.separatorInset = UIEdgeInsets.zero

Ответ 4

Используйте образ для разделителя. Это единственный простой способ оценить ожидаемый результат. Для ios 7 в xib у нас есть свойство краевого насекомого, которое вы можете использовать.

Ответ 5

Перейдите в раскадровку > Inspectute Inspector > Separator Insets, затем выберите cutom и измените левую координату от 15 до 0. он будет выполнен.

Ответ 6

В построителе интерфейса в UITableViewCell установите атрибут "фон" как ясный (или что-то еще), а затем в представлении содержимого установите атрибут "фон" также как ясный, и проблема должна исчезнуть.

Ответ 7

Это единственный метод, который работал для меня... (разделитель = нет через раскадровку)

enter image description here