SwiftUI ZStack:将一些后代对齐到底部,将一些后代对齐到顶部

问题描述

作为我应用的根视图,我有一个 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 介于两者之间。

,

您可以像这样在您的 VStack 中添加一个 ZStack

ZStack {
    VStack {
        YourTopView()
        Spacer()
        YourBottomView()
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...