颜色与UIColor支持的默认明/暗模式颜色

时间:2019-06-29 00:45:19

标签: ios swift uicolor swiftui

我正在尝试使用Apple的内置颜色(UIColor.labelUIColor.secondaryLabel等),但我似乎找不到与它们相同的Color。由于无法将它们用作Color,因此无法在SwiftUI代码中使用它们。有什么方法可以在SwiftUI中使用这些颜色?

1 个答案:

答案 0 :(得分:2)

我能够修改找到的here的一些代码来解决。不是世界上最好的解决方案,但它似乎可以工作。

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)