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")
}
}
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")
}
}