返回

SwiftUI 循环遍历构建视图

IOS

SwiftUI:使用循环构建视图

在 SwiftUI 中,您可以使用循环来重复创建多个视图。这对于创建诸如列表、网格和画廊等界面元素非常有用。

创建循环的最简单方法是使用 ForEach 视图。ForEach 视图接受一个数组作为参数,并为数组中的每个元素创建一个子视图。子视图可以是任何类型的视图,包括其他 ForEach 视图。

例如,以下代码使用 ForEach 视图创建一个包含数字 1 到 10 的列表:

struct ContentView: View {
    var body: some View {
        ForEach(1...10) { number in
            Text("\(number)")
        }
    }
}

当您运行此代码时,您将看到一个垂直排列的数字列表,从 1 到 10。

使用 ForEach 视图的常见用例

ForEach 视图可用于创建各种界面元素,包括:

  • 列表
  • 网格
  • 画廊
  • 轮播
  • 分页器

您可以使用 ForEach 视图来创建任何需要重复创建多个视图的界面元素。

使用 ForEach 进行动态视图创建

ForEach 视图还可用于创建动态视图。这意味着您可以根据数据或用户交互动态地创建和删除视图。

例如,以下代码使用 ForEach 视图创建一个列表,该列表显示当前日期的下一个 7 天:

struct ContentView: View {
    let currentDate = Date()

    var body: some View {
        ForEach(currentDate...currentDate.addingTimeInterval(60 * 60 * 24 * 7), id: \.self) { date in
            Text(date.formatted(date: .abbreviated, time: .omitted))
        }
    }
}

当您运行此代码时,您将看到一个列表,该列表显示当前日期的下一个 7 天。如果当前日期是 2023 年 3 月 8 日,那么您将看到以下列表:

- 2023  3  9 日
- 2023  3  10 日
- 2023  3  11 日
- 2023  3  12 日
- 2023  3  13 日
- 2023  3  14 日
- 2023  3  15 

您可以使用 ForEach 视图创建任何需要动态创建和删除视图的界面元素。