SwiftUI 怎样将文本定位于右下角?

13

在SwiftUI中有更好的排版文本的方法吗?在下面的示例中,我将文本定位在ZStack的右下角,它可以正常工作但似乎过于冗长,是否还有更简单的方法...橙色线只是用于调试,以便在视图中显示间距。

代码

struct DisplayTwoView: View {
    var body: some View {
        ZStack {
            Rectangle().foregroundColor(.blue)
            Group {
                VStack {
                    Spacer().frame(width: 5).background(Color.orange)
                    HStack {
                        Spacer().frame(height: 5).background(Color.orange)
                        Text("RABBITS").fontWeight(.black)
                    }
                }
            }.padding()
        }
    }
}

查看

输入图片描述

2个回答

22

尝试这个(已在Xcode 11.4 / iOS 13.4上测试)

struct DisplayTwoView: View {
    var body: some View {
        ZStack(alignment: .bottomTrailing) {
            Rectangle().foregroundColor(.blue)
            Text("RABBITS").fontWeight(.black)
                .padding()
        }
    }
}

这是一个不错的选择,是的,我忽略了你可以对齐堆栈的事实。 - fuzzygoat
有没有办法仅对ZStack内容中的单个对象进行对齐? - Zorayr
和@Zorayr一样有同样的问题。 - Emil Sabitov
检查alignmentGuides,https://www.hackingwithswift.com/books/ios-swiftui/alignment-and-alignment-guides。已经过了一段时间,但我相当确定它们适用于我。 - Zorayr

3
另一种方法是通过 .frame 修饰符实现,如下所示:
ZStack {
    Text("RABBITS")
        .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottomTrailing)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接