SwiftUI List 与 ForEach 的区别

参考:聊一下 SwiftUI 中的 List 和 ForEach

首先,下面两种方法都可以:

1
2
3
4
5
6
7
8
9
10
List(0..<100) { i in
Text("id:\(id)")
}


List {
ForEach(0..<100){ i in
Text("id:\(id)")
}
}
  • 使用 ForEach 可以在同一 List 中,添加多个动态源,且可添加静态内容
1
2
3
4
5
6
7
8
9
List {
ForEach(items,id:\.self){ item in
Text(item)
}
Text("其他内容")
ForEach(0..<10){ i in
Text("id:\(i)")
}
}
  • 使用 ForEach 对于动态内容可以控制版式
1
2
3
4
5
6
7
8
9
10
11
12
List {
ForEach(0..<10){ i in
Rectangle()
.listRowInsets(EdgeInsets()) //可以控制边界 insets
}
}

List(0..<10) { i in
Rectangle()
.listRowInsets(EdgeInsets())
// 不可以控制边界 insets. .listRowInsets(EdgeInsets()) 在 List 中只对静态内容有效
}

SwiftUI List 与 ForEach 的区别
https://wonderhoi.com/2024/01/23/SwiftUI-List-与-ForEach-的区别/
作者
wonderhoi
发布于
2024年1月23日
许可协议