SwiftUI:如何在没有列表的情况下为我的滚动视图设置可刷新

SwiftUI : How I can set refreshable for my Scrollview without List

import SwiftUI

struct HomeView: View {
    
    @StateObject var vm = NewsViewModel()
    
    let dataService = NewsDataService.instance
    
    init() {
        dataService.apiCall(text: "Korea")
    }
    
    var body: some View {
        NavigationView {
            ScrollView(.vertical, showsIndicators: false) {
                SearchView()
                VStack {
                    Divider()
                        if let newsArray = vm.newsArray?.articles {
                            ForEach(newsArray) { news in
                                NewsRowView(news: news)
                            }
                        }
                }
            }
            .navigationTitle("News")
            .navigationBarTitleDisplayMode(.automatic)
        }
    }
}

struct HomeView_Previews: PreviewProvider {
    static var previews: some View {
        HomeView()
    }
}

嗨,我试图为我的滚动视图找到刷新。 但是,大多数示例都可以使用 List。

如您所见,我使用 HStack 子视图创建了列表。 因此,我无法使用“.refreshable”修饰符。

所以,我想知道如何在我的视图中设置它。

如果可以的话,我也想看看详细的代码!

谢谢。

您可以在 NewsRowView 中像这样使用可刷新的。请记住,您需要确保在必要时使用 ObservableObject,以便它会在更新后为您提供新数据。

.refreshable {
            Task {
                let dataService = NewsDataService.instance
                dataService.apiCall(text: "Korea")                    
            }
}