首页 > 解决方案 > SwiftUI 对齐底部

问题描述

我有以下代码:

struct CircleView: View {
    var body: some View {
        ZStack(alignment: .bottom) {
            VStack{
                Spacer()
                Circle().frame(width: UIScreen.main.bounds.width/5)
            }
        }
    }
}

在此处输入图像描述

为什么它不对齐底部的圆圈?我有一个应该占用 ZStack 中所有可用空间的垫片?

提前致谢。

标签: swiftalignmentswiftui

解决方案


因为 Circle 是一个 Shape 并且没有自己的内容大小,所以会消耗所有提供的内容。您限制了宽度,但没有限制高度,因此 Circle 消耗了所有高度(蓝色矩形全是圆圈,但仅在合适的地方淹没)。

所以如果你想让它对齐,你必须完全限制它,如下所示

在此处输入图像描述

ZStack(alignment: .bottom) {
    VStack{
        Spacer()
        Circle()
            .frame(width: UIScreen.main.bounds.width/5, height: UIScreen.main.bounds.width/5)
    }
}

推荐阅读