WedX - журнал о программировании и компьютерных науках

iOS: цвет фона заголовка моего TableView больше не меняется в iOS13

Заголовок моего TableView плохо отображается в iOS13. Какой бы цвет я ни поставил, теперь он всегда отображается светло-серым...

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{   //Section color & style

    UITableViewHeaderFooterView *v = (UITableViewHeaderFooterView *)view;

    v.backgroundView.alpha = 1;
    v.textLabel.textColor = sectionColor;
    v.textLabel.font = sectionFont;
    v.textLabel.numberOfLines = 1;
    v.textLabel.minimumScaleFactor = 0.5;
    v.textLabel.adjustsFontSizeToFitWidth = YES;
    v.backgroundView.backgroundColor = [UIColor blueColor];
} 

iOS12:
iOS12

iOS13: iOS13

Странно, потому что, когда я шаг за шагом ставлю стоп в отладчике, он показывает мне хорошее изображение в iOS13, но не в приложении:

stepbystep Любые предложения, спасибо заранее?


  • Я думаю, что это, вероятно, что-то связанное с адаптацией для темного режима. Не могли бы вы попробовать использовать v.contentView.backgroundColor = ... ? 10.09.2019
  • @ R4N вот и все, спасибо: D Вы можете поместить это в ответ, я бы подтвердил это. 10.09.2019

Ответы:


1

Это работает для меня.

v.contentView.backgroundColor = .blue

вместо

v.backgroundView.backgroundColor = .blue
23.09.2019

2

Я заметил то же самое в одном из моих приложений. Затем увидел сообщение журнала в консоли:

Установка цвета фона в UITableViewHeaderFooterView устарела. Вместо этого установите пользовательский UIView с желаемым цветом фона в свойство backgroundView.

Установка пользовательского UIView с желаемым цветом фона в качестве backgroundView из UITableViewHeaderFooterView решила проблему.

Пример кода

class SomeHeaderView: UITableViewHeaderFooterView {

    override init(reuseIdentifier: String?) {
        super.init(reuseIdentifier: reuseIdentifier)
        configure()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    private func configure() {
        let backgroundView = UIView(frame: .zero)
        backgroundView.backgroundColor = .blue
        self.backgroundView = backgroundView
    }
}
10.09.2019
  • Можете ли вы быть более конкретным и показать код? Общий вид и установка цвета фона в willDisplayHeaderView у меня не работают 12.09.2019
  • @GarySabo Я добавил пример кода в свой ответ. Он настраивает фоновое представление в подклассе UITableViewHeaderFooterView вместо подкласса UITableViewDelegate. 13.09.2019
  • Спасибо, но тогда где будет создан и использован SomeHeaderView? ???? 13.09.2019
  • неважно, я реализовал это с помощью viewForHeaderInSection и работает хорошо ???? 13.09.2019

  • 3

    Попробуйте добавить вид наложения и изменить этот цвет для этого вида.

    UIView *coloredView = [[UIView alloc] init];
    coloredView.backgroundColor = [UIColor blueColor];
    [v addSubview:coloredView];
    
    [[coloredView.leadingAnchor constraintEqualToAnchor:v.leadingAnchor constant:0] setActive:YES];
    [[coloredView.trailingAnchor constraintEqualToAnchor:v.trailingAnchor constant:0] setActive:YES];
    [[coloredView.topAnchor constraintEqualToAnchor:v.topAnchor constant:0] setActive:YES];
    [[coloredView.bottomAnchor constraintEqualToAnchor:v.bottomAnchor constant:0] setActive:YES];
    
    09.09.2019
    Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]