我有水平ScrollView和ForEach在它显示一些数据从数组。有没有机会做一些像"拉刷新"这样的东西?但是从滚动视图的另一边(底部而不是顶部,或者在我的情况下从左边)?换句话说,当用户已经到达ScrollView的末端但仍继续拉动时,为手势添加动作。
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 15) {
ForEach(viewModel.recomendations, id: .placeID) {
rec in ...
}
}
我发现做到这一点的最简单的方法是在滚动视图的末尾添加一个额外的视图,该视图仅在更多内容可用时显示。然后使用.task
修饰符加载下一页的数据,例如
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 15) {
ForEach(viewModel.recomendations, id: .placeID) {
rec in ...
}
if viewModel.moreRecordsAvailable {
ProgressView()
.task {
await viewModel.loadNextPage()
}
}
}