swift 空视图占用的空间

neekobn8  于 4个月前  发布在  Swift
关注(0)|答案(1)|浏览(44)

如果没有来自服务器的数据,我想显示没有空间的EmptyView()。
如果我把我的代码放在VStack里面,那么EmptyView()会占用空间,如果我把代码放在没有Stack的地方,那么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调用无限时间。
谢谢你

qmb5sa22

qmb5sa221#

当你在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
    ,,,
}

相关问题