如何阻止View自动扩展到无穷大?

问题描述 投票:0回答:1

我想使用与文本视图宽度相同的矩形为文本视图添加下划线。

这是我的尝试:

struct Title: View {
    var body: some View {
        VStack {
            Text("Statistics")
            Rectangle()
            .foregroundColor(.red)
            .frame(height: (5.0))
        }
    }

}

但是我得到了这个结果:

enter image description here

但我想要这个结果:

enter image description here

有没有办法创建

Text
的扩展,可以应用于
Rectangle
,如下所示:

struct Title: View {

    var body: some View {
        VStack {
            Text("Statistics")
            Rectangle()
            .foregroundColor(.red)
            .frame(width: Text.width, height: (5.0))
        }
    }

}

使用这样的扩展,文本将使用正确宽度的矩形动态添加下划线。

我已经提到了这个问题,但它显然不是同一个问题。

swiftui swiftui-view
1个回答
42
投票

只需指定容器具有固定大小,它就会紧贴内容,例如

demo

var body: some View {
    VStack {
        Text("Statistics")
        Rectangle()
        .foregroundColor(.red)
        .frame(height: (5.0))
    }.fixedSize()              // << here !!
}
© www.soinside.com 2019 - 2024. All rights reserved.