【发布时间】:2026-01-06 12:45:02
【问题描述】:
试图理解为什么在ForEach 中使用Shape 会导致数组的反向迭代。示例:
var body: some View {
ForEach(0...10,id:\.self) { index in
TestShape()
}
}
struct TestShape:Shape {
func path(in rect: CGRect) -> Path {
return Path()
}
}
如果您每次通过都检查index,它将从 10 开始并向后工作。但是,如果不是调用TestShape,而是说Text("test"),则索引将从0 开始并逐渐上升。所以这里的关键区别在于对形状的调用。为什么会这样?
【问题讨论】:
-
“如果你每次都检查索引”你是如何检查它的?
-
断点或打印语句。
-
嗯,不用担心这个,让
ForEach自己做吧。它的循环顺序不应该影响你的代码(如果是这样,你可能做错了什么) -
谢谢,但这不是我的问题。我的问题是寻求理解这种行为。
-
好吧,但无论如何,SwiftUI 的大部分内部行为都是一个谜。它是封闭源代码,所以我们几乎只能猜测。
标签: swiftui