SwiftUI-如何将下边缘与同级中心对齐

时间:2019-11-11 19:34:49

标签: ios swift swiftui

在阅读问题之前,请先查看这张图片

Please have a look at this image before reading the question

我目前正在尝试在SwiftUI视图中将红色视图的垂直中心(/ centerY)与绿色视图的底部边缘对齐。

我来自UIKit,我将使用viewA.centerYAnchor.constraint(toEqual: viewB.bottomAnchor)

但是您将如何解决SwiftUI的这种方式呢?我有以下几种等级:

VStack {
    ZStack {
        Image("someImage")
        Text("Awesome Title") // <- align center to the Image's bottom edge
            .frame(width: 200, height: 130)

    }
    Spacer()
}

2 个答案:

答案 0 :(得分:1)

如果您从frame移除text并向ZStack添加底部对齐,则会为您带来理想的效果。

        VStack {
            ZStack (alignment: .bottom) {
                Image("someImage")
                Text("Awesome Title") // <- align center to the Image's bottom edge
            }
            Spacer()
        }

结果: result

答案 1 :(得分:0)

我找到了解决方法:

  1. 将ZStacks对齐方式设置为.bottom。现在,红色视图将与绿色视图的底部边缘对齐。感谢@Andrew。但这还不够:
  2. 将红色视图.alignmentGuide设置为以下内容:

    -> .alignmentGuide(.bottom) { d in d[.bottom] / 2 }

说明:现在,红色视图底部边缘将与红色视图高度的50%对齐!太棒了!