如果服务器没有数据,我想显示没有空格的 EmptyView()。
如果我将代码放入 VStack 中,则 EmptyView() 会占用该空间, 如果我把代码放在没有堆栈的情况下,那么API将调用无限多个。
我的代码如下:
VStack{
if let arr = vm.arrMessages{
getContent()
.padding(.top)
} else if vm.isLoading {
ProgressView()
} else if vm.isError {
EmptyView()
}
}
// Outside of VStack:
if let arr = vm.arrMessages{
getContent()
.padding(.top)
} else if vm.isLoading {
ProgressView()
} else if vm.isError {
EmptyView()
}
然后 API 调用无限时间。
谢谢你
当您在
VStack
内时,您可以简单地不放置任何东西来消除不需要的间距:
VStack {
if let arr = vm.arrMessages{
getContent()
.padding(.top)
} else if vm.isLoading {
ProgressView()
} else if vm.isError {
/* Nothing Here */ // 👈 Return nothing
}
}
您还可以为堆栈设置自定义间距,例如
0
,例如:
VStack(spacing: 0) { // 👈 The default value is dynamic value called `standard` which most of the time appears around 8 points
,,,
}