Поддерживаемые по умолчанию цвета светлого / темного режима для Color и UIColor

Я пытаюсь использовать встроенные цвета Apple (UIColor.label, UIColor.secondaryLabel и т. Д.), Но не могу найти их Color эквивалент. Поскольку я не могу использовать их как Color, я не могу использовать их в моем коде SwiftUI. Есть ли способ использовать эти цвета в SwiftUI?


person Jake    schedule 29.06.2019    source источник


Ответы (1)


Мне удалось изменить код, который я нашел здесь, чтобы найти решение. Не лучшее решение в мире, но похоже, что оно работает.

extension Color {
    static var label = Color.from(uicolor: .label)

    static func from(uicolor: UIColor) -> Color {
        var red: CGFloat = 0
        var green: CGFloat = 0
        var blue: CGFloat = 0
        var alpha: CGFloat = 0

        uicolor.getRed(&red, green: &green, blue: &blue, alpha: &alpha)

        return Color(red: Double(red), green: Double(green), blue: Double(blue)).opacity(Double(alpha))
    }
}

Использование:

Text("Test").color(.label)
person Jake    schedule 29.06.2019