遍历
本课属于 Coddy Swift 学习旅程的“SwiftUI 入门”单元。第 29 课,共 50 课。
ForEach 会为集合中的每个元素创建一个视图:
let fruits = ["Apple", "Banana", "Cherry"]
var body: some View {
VStack {
ForEach(fruits, id: \.self) { fruit in
Text(fruit)
}
}
}闭包会接收每个元素,并返回对应的视图。SwiftUI 需要一种区分各行的方式,因此会要求提供一个 id。id: \.self 使用值本身作为标识,这在每个元素都不同时适用。
数字范围也可以,不需要 id:
ForEach(1..<4) { number in
Text("Row \(number)")
}这会显示 Row 1、Row 2 和 Row 3:1..<4 会在 4 之前停止。
挑战
简单显示菜单:在 VStack 中,使用 ForEach 按顺序为 drinks 中的每种饮品创建一个 Text。
亲手试试
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
SwiftUI 入门中的所有课
自己练习: SwiftUI 在线编辑器