var body: some View {
NavigationView {
ZStack {
Color(UIColor.systemGroupedBackground).edgesIgnoringSafeArea(.all)
ScrollView(showsIndicators: false) {
if #available(iOS 15.0, *) {
VStack {
if self.viewModel.forms.isEmpty && !self.viewModel.isLoading {
Text("No Forms Assigned")
.foregroundColor(Color.gray)
.padding(.vertical, 20)
.accessibility(label: Text("No forms assigned"))
}
if self.viewModel.isLoading {
ActivityIndicator(isAnimating: .constant(true), style: .large).padding(.top, 20)
}
noFormsScrollView
Spacer(minLength: 16).accessibility(hidden: true)
}
.refreshable {
self.refreshData()
}
} else {
// Fallback on earlier versions
}
}
}.navigationBarTitle("Forms", displayMode: .inline)
}
}
我正试着增加拉力来刷新我的ScrollView
,但它不起作用。我在想,我到底做错了什么。
2条答案
按热度按时间o8x7eapl1#
只有在使用refreshable时,才能在
List
上自动使用拉动刷新。要使任何其他视图可刷新,您需要为此编写您自己的处理程序。This StackOverflow example显示了如何在ScrollView上执行Pull以刷新工作。
2hh7jdfx2#
完整的SwiftUI示例
支持iOS 13+
只需在您的项目中创建
RefreshableScrollView
然后在项目中的任何位置使用
RefreshableScrollView
示例: