Menu
CoddyTech

遍历

本课属于 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 之前停止。

challenge icon

挑战

简单

显示菜单:在 VStack 中,使用 ForEach 按顺序为 drinks 中的每种饮品创建一个 Text。

亲手试试

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

SwiftUI 入门中的所有课

自己练习: SwiftUI 在线编辑器