Цвет рамки не меняется при смене темы в iOS 13 - PullRequest
0 голосов
/ 30 октября 2019

Я недавно разработал приложение, которое совместимо с темным режимом.

И темный режим тоже отлично работает. Кстати, когда я переключаюсь из режима dark -> light, light -> dark с устройства, все цвета меняются, как и ожидалось, кроме цвета границы.

Допустим, цвет границы черный в режиме освещенияи белый, когда темный режим и настройки системы темные. Когда я изменяю настройки системы на светлый режим и возвращаюсь в приложение, все цвета границ остаются белыми, которые должны быть черными.

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

Спасибо.

1 Ответ

1 голос
/ 31 октября 2019

Благодаря @KurtRevis мне, наконец, удалось решить проблему.

Вам нужно прослушать traitCollectionDidChang e. Если вы хотите изменить borderColor при изменении внешнего вида, вам понадобится что-то вроде этого.

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
   if #available(iOS 13.0, *) {
       if (traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection)) {
           // ColorUtils.loadCGColorFromAsset returns cgcolor for color name
           layer.borderColor = ColorUtils.loadCGColorFromAsset(colorName: "CellBorderColor")
       }
   }
}

Надеюсь, это поможет другим

...