SwiftUI ZStack:将一些后代对齐到底部,将一些后代对齐到顶部
SwiftUI ZStack: Align some descendants to bottom, and some to top
作为我的应用程序的根视图,我有一个 ZStack
,我想添加两个浮动栏,一个在底部,一个在视口顶部。
用一个条很容易(ZStack(alignment: .top)
),但是有没有办法添加多个后代,并让一个与顶部对齐,第二个与底部对齐?
我尝试从 ZStack 中删除 alignment
,并向子级添加 .frame(alignment: .top)
/ .frame(alignment: .bottom)
,但这没有任何作用。
是的,它可以通过将一个顶部对齐的 ZStack 与另一个底部对齐的 ZStack 包装在一起来破解,但它看起来相当不优雅。
这是可能的方法
ZStack {
// content here
}
.overlay(YourTopView(), alignment: .top)
.overlay(YourBottomView(), alignment: .bottom)
其他可能的变体是使用一个 .overlay
,VStack
有两个视图,Spacer
在两者之间。
您可以像这样在 ZStack
中添加 VStack
ZStack {
VStack {
YourTopView()
Spacer()
YourBottomView()
}
}
作为我的应用程序的根视图,我有一个 ZStack
,我想添加两个浮动栏,一个在底部,一个在视口顶部。
用一个条很容易(ZStack(alignment: .top)
),但是有没有办法添加多个后代,并让一个与顶部对齐,第二个与底部对齐?
我尝试从 ZStack 中删除 alignment
,并向子级添加 .frame(alignment: .top)
/ .frame(alignment: .bottom)
,但这没有任何作用。
是的,它可以通过将一个顶部对齐的 ZStack 与另一个底部对齐的 ZStack 包装在一起来破解,但它看起来相当不优雅。
这是可能的方法
ZStack {
// content here
}
.overlay(YourTopView(), alignment: .top)
.overlay(YourBottomView(), alignment: .bottom)
其他可能的变体是使用一个 .overlay
,VStack
有两个视图,Spacer
在两者之间。
您可以像这样在 ZStack
中添加 VStack
ZStack {
VStack {
YourTopView()
Spacer()
YourBottomView()
}
}