【发布时间】:2019-10-15 01:13:15
【问题描述】:
我试图在稍后在代码中使用 cardGradient 的结构中执行此操作。 "1a" 和 "1b" 是 assets 文件夹中的颜色。
var color1 = "1a"
var color2 = "1b"
let cardGradient = LinearGradient(gradient: Gradient(colors:
[Color(color1), Color(color2)]), startPoint: .leading, endPoint: .trailing)
不能在属性初始化器中使用实例成员“color1”; 属性初始化程序在 'self' 可用之前运行。
不能在属性初始化器中使用实例成员“color2”; 属性初始化器在“self”可用之前运行
//
解决方案:感谢您的帮助!
var color1 = "1a"
var color2 = "1b"
VStack {
// ... some views here
}
.background(LinearGradient(gradient: Gradient(colors:
[Color(color1), Color(color2)]), startPoint: .leading, endPoint: .trailing))
【问题讨论】:
-
你可以让它成为一个惰性变量:
lazy var cardGradient = ... -
@Liv 欢迎来到 StackOverflow!如果下面的答案帮助您找到解决方案,您应该接受它。如果您认为您的解决方案足够独特,足以保证自己的答案,您可以用您的解决方案回答您自己的问题并接受它。这样,有类似问题的程序员就会知道什么对你有用。