我试着在HStack中根据" number“变量做一排铅笔,如果数字是零,就做一个人。但我不明白为什么当数字是0或1时,图像只跟在数字后面。我可以点击add按钮,将数字设置为100,但仍然只有一支铅笔。
非常感谢。
我的代码摘录:
struct ContentView: View {
@State private var number: Int = 0
var body: some View {
VStack{
HStack{
if number == 0 {
Image(systemName: "person")
} else {
ForEach(0..<self.number){_ in
Image(systemName: "pencil")
}
}
}
Button(action:{self.add()})
{
Text("add")
}
Button(action:{self.subtract()})
{
Text("substract")
}
Text("\(number)")
}
}
func add(){
number += 1
return
}
func subtract(){
number -= 1
return
}发布于 2020-09-17 23:17:36
您可以使用常量数据ForEach构造函数,请尝试
HStack{
if number == 0 {
Image(systemName: "person")
} else {
ForEach(Array(0..<self.number), id: \.self){_ in // << here !!
Image(systemName: "pencil")
}
}
}https://stackoverflow.com/questions/63940992
复制相似问题