Как конвертировать «UIColor» в «Color» SwiftUI - PullRequest
0 голосов
/ 11 июля 2019

Я хочу использовать UIColor в качестве цвета переднего плана для объекта, но я не знаю, как преобразовать UIColor в цвет

var myColor: UIColor
RoundedRectangle(cornerRadius: 5).foregroundColor(UIColor(myColor))

1 Ответ

2 голосов
/ 11 июля 2019

Использование двух вспомогательных расширений:

Для извлечения компонентов из UIColor:

extension UIColor {
    var rgba: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
        var red: CGFloat = 0
        var green: CGFloat = 0
        var blue: CGFloat = 0
        var alpha: CGFloat = 0
        getRed(&red, green: &green, blue: &blue, alpha: &alpha)

        return (red, green, blue, alpha)
    }
}

В init с UIColor:

extension Color {
    init(uiColor: UIColor) {
        self.init(red: Double(uiColor.rgba.red),
                  green: Double(uiColor.rgba.green),
                  blue: Double(uiColor.rgba.blue),
                  opacity: Double(uiColor.rgba.alpha))
    }
}

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

Color(uiColor: .red)
...