我正在尝试在HStack和VStack中使用forEach。我在它们中使用文本,运行时文本不会出现,但onAppear打印值。请看一下我的代码。为什么文本不显示?我怎么才能让它工作呢?
@State var sd = ["1","2","3","4","5","6","7"]
VStack {
ForEach(0...sd.count/3) { _ in
HStack {
ForEach(0...2) { _ in
if(self.sd.isEmpty) {
} else {
Text("Test")
.onAppear() {
if(!self.sd.isEmpty) {
print("i appeared")
self.sd.removeFirst()
}
}
}
}
Spacer()
}
}
}
我在这里想要实现什么?
我正在尝试创建一个最多3个文本在它的HStacks。我在这里只使用数组来渲染文本7次。
具有7个元素的数组的预期结果->
我想创建一个3 HStacks的VStack,在第一个2 HStacks我想渲染文本3次,在最后的HStack我只想要一个文本。(比如我有7个数组元素,这就是为什么前两个hstack中有3个文本,最后一个hstack中有一个文本)。如果数组有10个元素,那么3个Hstack包含3个文本,last Stack包含1个文本。我无法呈现文本,因为我的数组是@state var,每次我从其中删除firstElement时,它都会刷新view.body。
有没有办法实现这个行为,我正在尝试通过只使用SwiftUI来实现。我不想使用UICollection视图。
https://stackoverflow.com/questions/57032007
复制相似问题