SwiftUi:for i in 0 ...如何解决包含控制流语句的闭包
SwiftUi : for i in 0... How to solve closure containing control flow statement
我尝试显示一些依赖于整数的图像。
例如“3”我想要那个:
VStack {
Text(recette.name)
HStack() {
Text("Durée 20 min")
.font(.caption)
.fontWeight(.light)
Text("Notes")
.font(.caption)
.fontWeight(.light)
HStack(spacing: -1.0) {
for 0 in 0...recette.avis{
Image(systemName: "star.fill")
.padding(.leading)
.imageScale(.small)
.foregroundColor(.yellow)
}
}
}
}
但代码无法编译并在 for.
中出现此错误
包含控制流语句的闭包不能与函数生成器一起使用'ViewBuilder'
有人可以帮我吗?
谢谢。
您想使用 ForEach
来创建您的星星。
下面是一个工作示例。
// This is a simple struct to mock the data
struct Recette {
let name: String = "Test"
let avis: Int = 3
}
struct ContentView: View {
let recette = Recette()
var body: some View {
VStack {
Text(recette.name)
HStack() {
Text("Durée 20 min")
.font(.caption)
.fontWeight(.light)
Text("Notes")
.font(.caption)
.fontWeight(.light)
HStack(spacing: -1.0) {
ForEach(0..<recette.avis) {_ in // <- use ForEach() here
Image(systemName: "star.fill")
.padding(.leading)
.imageScale(.small)
.foregroundColor(.yellow)
}
}
}
}
}
}
这是上面代码产生的结果:
我尝试显示一些依赖于整数的图像。
例如“3”我想要那个:
VStack {
Text(recette.name)
HStack() {
Text("Durée 20 min")
.font(.caption)
.fontWeight(.light)
Text("Notes")
.font(.caption)
.fontWeight(.light)
HStack(spacing: -1.0) {
for 0 in 0...recette.avis{
Image(systemName: "star.fill")
.padding(.leading)
.imageScale(.small)
.foregroundColor(.yellow)
}
}
}
}
但代码无法编译并在 for.
中出现此错误包含控制流语句的闭包不能与函数生成器一起使用'ViewBuilder'
有人可以帮我吗?
谢谢。
您想使用 ForEach
来创建您的星星。
下面是一个工作示例。
// This is a simple struct to mock the data
struct Recette {
let name: String = "Test"
let avis: Int = 3
}
struct ContentView: View {
let recette = Recette()
var body: some View {
VStack {
Text(recette.name)
HStack() {
Text("Durée 20 min")
.font(.caption)
.fontWeight(.light)
Text("Notes")
.font(.caption)
.fontWeight(.light)
HStack(spacing: -1.0) {
ForEach(0..<recette.avis) {_ in // <- use ForEach() here
Image(systemName: "star.fill")
.padding(.leading)
.imageScale(.small)
.foregroundColor(.yellow)
}
}
}
}
}
}
这是上面代码产生的结果: