为ScrollView添加操作已到达终点并继续拉动SwiftUI

9lowa7mx  于 2023-01-12  发布在  Swift
关注(0)|答案(1)|浏览(123)

我有水平的ScrollView和ForEach来显示数组中的一些数据。是否有机会从滚动视图的另一侧(底部而不是顶部,或者在我的情况下从左侧)进行类似“拉刷新”的操作?换句话说,当用户已经到达ScrollView的末尾时,向手势添加操作,但继续拉。

ScrollView(.horizontal, showsIndicators: false) {
   HStack(spacing: 15) {
                ForEach(viewModel.recomendations, id:  \.placeID) { 
    rec in ...
   }
}
mefy6pfw

mefy6pfw1#

我发现的最简单的方法是在滚动视图的末尾添加一个额外的视图,这个视图只有在有更多内容可用时才显示,然后使用.task修饰符加载下一页数据,例如.task

ScrollView(.horizontal, showsIndicators: false) {
   HStack(spacing: 15) {
       ForEach(viewModel.recomendations, id:  \.placeID) { 
          rec in ...
       }
       if viewModel.moreRecordsAvailable {
           ProgressView()
              .task {
                 await viewModel.loadNextPage()
              }
       }
}

相关问题