在 SwiftUI 列表中显示 2 列(从核心数据中提取数据)

Displaying 2 Columns in SwiftUI List (pulling data from Core Data)

我在 SwiftUI 中创建了一个列表,它从核心数据(标题和月份)的 2 个属性中提取信息。

效果很好,但我相信您会同意一个不太优雅的解决方案,即使用中间有大量空格的字符串插值来分隔。看起来很可怕。

我如何修改下面的代码以创建一个 2 列列表,其中“标题”位于第一列,“月份”位于第二列(显然在同一行)。

List {
    ForEach(toDos) {
        listedToDos in
            Text ("\(listedToDos.title!)      Expires: \(listedToDos.month!)")
    }
    .onDelete(perform: deleteItems)
}

怎么样:

ForEach(toDos) { listedToDos in
        HStack{
            Text ("\(listedToDos.title!)")
            Spacer()
            Text("Expires: \(listedToDos.month!)")
        }
    }

这会将第一个 Text 放在左边,第二个放在右边。

您可以只对列表中的每一行使用 HStack。

ForEach ... {
        
    HStack{
        Text("\(listedToDos.title!)")
        Text("Expires: \(listedToDos.month!)")
        Spacer()
    }
        
}

如果您希望列左对齐,请为您的文本项提供固定的框架宽度。使用填充来创建一些空白。

    Text("\(listedToDos.title!)")
        .frame(width: 150, alignment: .leading)
        .padding(.leading, 10)