繁体   English   中英

SwiftUI ForEach 循环索引始终为 0

[英]SwiftUI ForEach loop index is always 0

我有一个 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真,我想禁用除第一行和最后一行之外的所有行。 它不会按预期工作,所有ValueView启用或禁用。 现在最令人惊讶的事情是:我将断点设置为______________index in @index@中的控制台______________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中的值是可以的。

索引未更新。 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)
                    }
                }
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM