在 SwiftUI 中,对 List 实现下拉刷新是非常简单的一件事,我们通过 refreshable 就可以实现。只需添加一行代码。
示例代码如下:
struct ContentView: View {
var body: some View {
NavigationStack {
List(1..<20) { row in
Text("第 \(row) 条数据")
}
.refreshable {
// 处理下拉事件的逻辑
}
.navigationTitle("可以下拉刷新的列表")
.navigationBarTitleDisplayMode(.inline)
}
}
}
效果如下图:
放在 refreshable 中的代码会自动在异步上下文的环境中运行,因此可以在里面放置网络加载数据的逻辑。