如何在 SwiftUI 中将 属性 定义为 Color 或 LinearGradient?

How to define a property to be either Color or LinearGradient in SwiftUI?

我想存一个backColor属性用来画画。我怎样才能让这个 属性 采用 Color 或 LinearGradient?

struct Card {
    let backColor: Color
}

let colorBackCard = Card(backColor: Color.red)
let gradientBackCard = Card(backColor: LinearGradient(...))

最后一行代码显示:无法将类型 'LinearGradient' 的值转换为预期的参数类型 'Color'。

我该如何解决这个问题 属性?

谢谢

--

我试过这个:

enum ColorGradient {
    case color(Color)
    case gradient(LinearGradient)
}

struct Card {
    let backColor: ColorGradient
}

let colorBackCard = Card(backColor: ColorGradient.color(Color.red))
let gradientBackCard = Card(backColor: ColorGradient.gradient(LinearGradient(...)))

但是当我用这个属性在View里画图的时候,报:

实例方法'background(_:alignment:)'要求'ColorGradient'符合'View'

--

我现在使用 2 个单独的变量 Color?和线性渐变?

如果直接在视图中使用,那么下面这样更合适

struct Card<Background: View> {
    let backColor: Background
}

// no changes in below
let colorBackCard = Card(backColor: Color.red)
let gradientBackCard = Card(backColor: LinearGradient(...))