带有灵活Spacer的SwiftUI VStack

我有一个简单的VStack,顶部有一个视图,底部有一个多行文本。文本可以更新其内容,因此可以根据行数调整其大小。发生这种情况时,顶部的视图也会调整其位置-向上或向下移动。

我希望顶视图保持固定的垂直位置,而与VStack中下面的视图无关。我认为Spacer的用途是,因为它们很灵活。但这并没有窍门。

struct ContentView: View {
    var body: some View {
        VStack {
            HStack("Some Icons")
            Spacer()
            Text("Multiline Text")
        }
    }
}
iCMS 回答:带有灵活Spacer的SwiftUI VStack

您可以将其包装在ZStack中:

struct ContentView: View {
    var body: some View {
        ZStack {
            VStack {
                Text("top view")
                Spacer()
            }
            VStack {
                Spacer()
                Text("bottom view")
            }
        }
    }
}

这样,第一个VStack中的所有内容都不会相对于第二个VStack移动。


或者,您可以继续使用VStack,但将其子视图包装在单独的VStack中:

struct ContentView: View {
    var body: some View {
        VStack {
            VStack {
                Text("top view")
                Spacer()
            }
            VStack {
                Spacer()
                Text("bottom view")
            }
        }
    }
}
本文链接:https://www.f2er.com/1814795.html

大家都在问