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

nOk*_*nOk 2 swiftui swiftui-list

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

继承人我的代码:

HStack {
    Rectangle()
        .foregroundColor(poll.outcome ? .green : .red)
        .frame(width: 3)
    VStack {
        Text(poll.poll.title!).font(.headline)
            .lineLimit(2)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是没有矩形的样子: 无矩形

和矩形: 无矩形

Fab*_*yne 9

在 List 或 ScrollView 中,SwiftUI 引擎将压缩文本区域。.lineLimit(x) 为您提供最大行数,而不是最小行数;) 为确保引擎不会缩小文本高度并达到最大限制,请添加 .fixedSize(horizo​​ntal: false, vertical: true) 作为如下图

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