3

作为我的应用程序的根视图,我有一个ZStack,并且我想添加两个浮动条,一个在底部,一个在视口顶部。

使用单个条很容易(ZStack(alignment: .top)),但是有没有办法添加多个后代,并让一个与顶部对齐,第二个与底部对齐?

我尝试alignment从 ZStack 中删除,并将.frame(alignment: .top)/添加.frame(alignment: .bottom)到孩子,但这没有做任何事情。

是的,可以通过将一个顶部对齐的 ZStack 与另一个底部对齐的 ZStack 包裹起来来破解它,但这似乎相当不雅。

4

2 回答 2

7

这是可能的方法

ZStack {

 // content here

}
.overlay(YourTopView(), alignment: .top)
.overlay(YourBottomView(), alignment: .bottom)

其他可能的变体是使用一个.overlay具有VStack两个视图以及Spacer介于两者之间的视图。

于 2021-05-31T14:48:23.660 回答
1

你可以像这样VStack在里面添加一个ZStack

ZStack {
    VStack {
        YourTopView()
        Spacer()
        YourBottomView()
    }
}
于 2021-06-01T02:40:18.963 回答