在 SwiftUI 中,ForEach
視圖非常有用,可以遍歷數組或範圍,並生成我們可以使用的視圖。
例如,我們在此創建了3個 Text
視圖,顯示從0到2的數字:
ForEach(0..<3) {
Text("\($0)")
}
$0
表示傳遞給閉包的第一個參數,在這個例子中分別是數字 0、1 和 2。
在這個例子中,為了避免重疊,我將它們嵌入到了一個 VStack
中:
VStack {
ForEach(0..<3) {
Text("\($0)")
}.padding()
}
注意我使用了
padding()
修改器來添加一些間距。
在 List
視圖中,通常使用 ForEach
:
List {
ForEach(0..<3) {
Text("\($0)")
}
}
這是一種常見的用法,以至於我們實際上可以省略 ForEach
,直接從 List
中遍歷:
List(0..<3) {
Text("\($0)")
}
這兩個示例使用了範圍 0..<3
。我們也可以遍歷數組:
let fruits = ["Apple", "Pear", "Orange"]
// ...
List {
ForEach(fruits, id: \.self) {
Text("\($0)")
}
}
請注意,這種情況下我們有另外一個參數:id
。
這是為了唯一識別數組中的項目。
對於內置類型,使用 \.self
作為 id
是有效的;如果遍歷自定義結構體,則需要該結構體遵循 Identifiable
協議或提供唯一的參數。