我有一个ForEach循环:
ScrollView(.horizontal) {
HStack {
ForEach(0..<instance.values.count, id: \.self) { index in
ValueView(value: $instance.values[index] )
//bookmark set here
.disabled( distributed && (index != 0 && index != instance.values.count - 1 ))
.frame(width: 35)
.controlSize(.mini)
.padding(.horizontal, -4.0)
}
}
}
如果var distributed
是 true ,我想禁用除第一行和最后一行之外的所有行。
无法正常工作,所有ValueView
均已启用或禁用。
现在最令人惊讶的事情是:
我将断点设置为在控制台______________index in @index@
中打印,结果是:
______________index in 0
______________index in 0
______________index in 0
______________index in 0
______________index in 0
______________index in 0
______________index in 0
什么是index
?为什么总是0
?真的很奇怪,ValueView
中的值还可以。
答案 0 :(得分:0)
索引未更新。对于ForEach,$ 0是索引。旋转一下:
ScrollView(.horizontal) {
HStack {
ForEach(0..<instance.values.count, id: \.self) {
ValueView(value: $instance.values[$0] )
//bookmark set here
.disabled( distributed && ($0 != 0 && $0 != instance.values.count - 1 ))
.frame(width: 35)
.controlSize(.mini)
.padding(.horizontal, -4.0)
}
}
}