SwiftUI HStack车辆对准不起作用?

时间:2019-11-23 13:11:13

标签: swift alignment vertical-alignment swiftui

我有以下代码:

HStack(alignment: VerticalAlignment.top) {
    Button("x"){
        self.errorText = ""
    }
    //Spacer()
}

我需要在顶部找到按钮。但是该按钮仍然位于HStack视图的中心。

enter image description here

我做错了什么?

PS:对我来说,在这个地方使用Spacer()并不是解决方案。我需要完全对齐。


不需要的部分:

@State var errorText: String = "Some long error text long long long long long long long long long long long long long long long long long long long long"

        VStack{
            Spacer()
            HStack{
                Text("Error: \(errorText)")
                Spacer()
                HStack(alignment: VerticalAlignment.top) {
                    Button("x"){
                        self.errorText = ""
                    }
                    //Spacer()
                }
            }
            .frame(minHeight:10)
            .padding(.all, 5)
        }

我不知道VStack(HStack父级)的高度,因为我不知道错误文本的大小;

Spacer()不是解决方案,因为它使VStack的高度变为窗口的高度。

1 个答案:

答案 0 :(得分:1)

您应该对齐外部HStack。 内在的也没有用。这样您就可以摆脱它。

VStack{
    Spacer()
    HStack(alignment: .top) {
        Text("Error: \(errorText)")
        Spacer()
        Button("x"){ self.errorText = "" }
    }
    .frame(minHeight:10)
    .padding(.all, 5)
}