文本与其他内容一起放入HStack时只有一行(SwiftUI列表)

文本与其他内容一起放入HStack时只有一行(SwiftUI列表),swiftui,swiftui-list,Swiftui,Swiftui List,我正在尝试显示一个项目列表。每一行都应该在左边包含一条特定颜色的条纹和一个标题。这个标题有时不止一行,但只显示为一行和“…”。当我删除条带时,它显示为多行文本。我附上了代码和两张图片以供比较 这是我的密码: HStack { Rectangle() .foregroundColor(poll.outcome ? .green : .red) .frame(width: 3) VStack { Text(poll.poll.title

我正在尝试显示一个项目列表。每一行都应该在左边包含一条特定颜色的条纹和一个标题。这个标题有时不止一行,但只显示为一行和“…”。当我删除条带时,它显示为多行文本。我附上了代码和两张图片以供比较

这是我的密码:

HStack {
    Rectangle()
        .foregroundColor(poll.outcome ? .green : .red)
        .frame(width: 3)
    VStack {
        Text(poll.poll.title!).font(.headline)
            .lineLimit(2)
    }
}
这是没有矩形时的外观:

对于矩形:

SwiftUI现在有一些bug,这是其中之一,您可以查看

虽然它可以在我的机器上运行,但如果您在调整元素大小方面遇到任何问题,您可以使用
Spacer
s作为解决方法,直到苹果修复所有SwiftUI错误

在这种情况下,可以在两个间隔符之间换行文字,如下所示:

VStack {
    Spacer()

    Text("FirstLine\nSecondLine\nThirdLine")
    .font(.headline)
    .lineLimit(2)

    Spacer()
}

SwiftUI现在有一些bug,这是其中之一,您可以查看

虽然它可以在我的机器上运行,但如果您在调整元素大小方面遇到任何问题,您可以使用
Spacer
s作为解决方法,直到苹果修复所有SwiftUI错误

在这种情况下,可以在两个间隔符之间换行文字,如下所示:

VStack {
    Spacer()

    Text("FirstLine\nSecondLine\nThirdLine")
    .font(.headline)
    .lineLimit(2)

    Spacer()
}

在列表或滚动视图中,SwiftUI引擎将压缩回文本区域。lineLimit(x)为您提供最大行数,而不是最小行数;) 为了确保引擎不会收缩文本高度并达到最大限制,请添加.fixedSize(水平:false,垂直:true),如下所示

HStack {
        Rectangle()
            .foregroundColor(.red)
            .frame(width: 3)
        VStack {
            Text("line1\nline2\nline3").font(.headline)
                .lineLimit(2)
                .multilineTextAlignment(.leading)
                .fixedSize(horizontal: false, vertical: true)
        }
    }

在列表或滚动视图中,SwiftUI引擎将压缩回文本区域。lineLimit(x)为您提供最大行数,而不是最小行数;) 为了确保引擎不会收缩文本高度并达到最大限制,请添加.fixedSize(水平:false,垂直:true),如下所示

HStack {
        Rectangle()
            .foregroundColor(.red)
            .frame(width: 3)
        VStack {
            Text("line1\nline2\nline3").font(.headline)
                .lineLimit(2)
                .multilineTextAlignment(.leading)
                .fixedSize(horizontal: false, vertical: true)
        }
    }

您使用的是什么版本的Xcode?我看不出问题您使用的是什么版本的Xcode?我看不出这个问题会给我带来同样的结果。我用
.layoutPriority()
试过了,结果太一样了,恐怕对我来说也一样。我用
.layoutPriority()
尝试过同样的结果