accentColor
может иметь цвет «Любой вид» и цвет «Темный вид». Допустим, я нахожусь в светлом режиме, как я могу программно получить доступ к цвету темного режима, не устанавливая вручную цветовой режим на темный режим?
Вам нужно разрешить свой именованный цвет для набора черт темного стиля, например
.background(
Color(UIColor(named: "testColor")?.resolvedColor(with:
UITraitCollection(userInterfaceStyle: .dark)) ?? UIColor.darkText)
)
Протестировано с Xcode 12.4 / iOS 14.4
Примечание: настройте свое имя цвета и любой цвет по умолчанию, чтобы развернуть необязательно
resolvedColor
- это метод UIColor
, а не Color
, но Color
можно создать с помощью UIColor
, как показано.
Моя ошибка! Спасибо.
Выглядит хорошо в SO, но когда я пробую это, я получаю
Value of type 'Color' has no member 'resolvedColor'
, когда делаю следующее:import SwiftUI extension Color { func opposite(scheme: ColorScheme) -> Color { resolvedColor(with: UITraitCollection(userInterfaceStyle: .dark)) } }