gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:27:40 32 4
gpt4 key购买 nike

我想存储一个用于绘图的 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?和 LinearGradient?

最佳答案

如果直接在view中使用那么下面的会更合适

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

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

关于swift - 如何在 SwiftUI 中将属性定义为 Color 或 LinearGradient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62274979/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com