【问题标题】:SwiftUI ZStack: Align some descendants to bottom, and some to topSwiftUI ZStack:将一些后代对齐到底部,一些到顶部
【发布时间】:2021-05-31 14:34:12
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: swiftui swiftui-zstack


    【解决方案1】:

    这是可能的方法

    ZStack {
    
     // content here
    
    }
    .overlay(YourTopView(), alignment: .top)
    .overlay(YourBottomView(), alignment: .bottom)
    

    其他可能的变体是使用一个.overlayVStack 有两个视图,Spacer 介于两者之间。

    【讨论】:

    • 谢谢!这正是我想要的效果,并且在语义上感觉更清晰,更具可读性!
    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,这也有效 - 我最初希望间隔符会阻止对底层内容的点击,但显然没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多