在 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)
我在 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)