Swiftui 在VStack的内容下面加下划线

Swiftui 在VStack的内容下面加下划线,swiftui,Swiftui,我试图在VStack的底部添加一行,填充到VStack的宽度,该宽度由VStack中的其他内容确定,但我使用的矩形填充了整个视图的可用空间 struct ContentView: View { var body: some View { VStack { Text("Testing123") Rectangle().frame(height: 2) } } } 如何使矩形仅具

我试图在
VStack
的底部添加一行,填充到
VStack
的宽度,该宽度由
VStack
中的其他内容确定,但我使用的
矩形填充了整个视图的可用空间

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Testing123")
            Rectangle().frame(height: 2)
         }
    }
}


如何使
矩形
仅具有
VStack
所需的宽度以适合其内容?

以下是一种方法

将您的
矩形
放入
VStack
.overlay()
。将矩形放入其自身的
VStack
中,并使用
垫片
矩形
推到底部。通过在
VStack
中的最后一个视图中添加
.padding
来控制矩形与原始
VStack
之间的间距

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hi")
            Text("Testing123")
            Text("Bye").padding(.bottom, 10)
        }
        .overlay(
            VStack {
                Spacer()
                Rectangle().frame(height: 2)
            }
        )
    }
}


我想你可以用
背景
叠加
来制作你想要的东西。这些宽度受
VStack
宽度的影响,因此您可以将与对齐元素(如
.frame
VStack
)相关的一些额外代码放在该行上。