SwiftUI 的 List 是专为展示结构化、可滚动的行式内容设计的。它等价于 iOS 的 UITableView 或 macOS 的 NSTableView,但使用上更为声明式。
基本用法
struct ListView: View {
let fruits = ["🍎 Apple", "🍌 Banana", "🍇 Grape"]
var body: some View {
List {
ForEach(fruits, id: \.self) { fruit in
Text(fruit)
}
}
}
}

主要用途
1、数据集合展示:新闻列表、联系人、文件列表。
2、项目选择界面:侧边导航、菜单选项、任务清单。
3、增删改操作支持:删除条目、排序、滑动菜单。
4、搭配导航使用:NavigationLink 跳转到详情页。
主要功能
1、支持ForEach,可动态更新视图和数据。
2、支持 .onDelete(),实现滑动删除等操作。
3、支持 .onMove() 拖动排序。
4、支持 ,swipeActions 行滑动菜单,macOS 13+/iOS 15+版本。
5、支持NavigationLink,可用作导航菜单。
6、支持多选,需要添加 .selection(…)。
7、支持Section {},可多组内容展示。
使用场景
1、静态列表
List {
Text("设置")
Text("关于")
}
2、动态列表
List(items, id: \.id) { item in
Text(item.name)
}
3、分组列表(Section)
List {
Section(header: Text("水果")) {
Text("🍎 Apple")
Text("🍊 Orange")
}
Section(header: Text("蔬菜")) {
Text("🥕 Carrot")
Text("🥬 Lettuce")
}
}

4、列表实现导航链接功能
List(items) { item in
NavigationLink(destination: DetailView(item: item)) {
Text(item.title)
}
}
5、提供删除功能的列表
struct FruitListView: View {
@State private var fruits = ["Apple", "Banana", "Grape"]
var body: some View {
List {
ForEach(fruits, id: \.self) { fruit in
Text(fruit)
}
.onDelete { indices in
fruits.remove(atOffsets: indices)
}
}
}
}
总结
List用于展示数据集合、导航跳转、滑动删除/拖动排序等功能。
相关文章
1、SwiftUI List和Form的分组视图Section:https://fangjunyu.com/2025/01/13/swiftui-list%e5%92%8cform%e7%9a%84%e5%88%86%e7%bb%84%e8%a7%86%e5%9b%besection/
2、SwiftUI在List底部显示注释或说明:https://fangjunyu.com/2025/01/13/swiftui%e5%9c%a8list%e5%ba%95%e9%83%a8%e6%98%be%e7%a4%ba%e6%b3%a8%e9%87%8a%e6%88%96%e8%af%b4%e6%98%8e/
3、SwiftUI使用List样式增加间距:https://fangjunyu.com/2025/01/13/swiftui%e4%bd%bf%e7%94%a8list%e6%a0%b7%e5%bc%8f%e5%a2%9e%e5%8a%a0%e9%97%b4%e8%b7%9d/
4、SwiftUI列表格式化ListFormatStyle:https://fangjunyu.com/2024/12/24/swiftui%e5%88%97%e8%a1%a8%e6%a0%bc%e5%bc%8f%e5%8c%96listformatstyle/
5、SwiftUI LazyVGrid与List布局冲突问题:https://fangjunyu.com/2024/12/07/swiftui-lazyvgrid%e4%b8%8elist%e5%b8%83%e5%b1%80%e5%86%b2%e7%aa%81%e9%97%ae%e9%a2%98/