Ios SwiftUI:在列表中水平对齐视图
我试图让列表中的项目以特定的方式排列Ios SwiftUI:在列表中水平对齐视图,ios,swiftui,Ios,Swiftui,我试图让列表中的项目以特定的方式排列 List { HStack { Text("1.") Text("Item 1") } HStack { Text("Item 2") } } 最后看起来是这样的: 1. Item 1 Item 2 在本例中,我希望排列“项目1”和“项目2”: 也就是说,“项目”部分都会对齐,无论它们是否具有列表标记,或者它们是否具有不同长度的列表标记(数字1。与100对齐。) 我试过了,
List {
HStack {
Text("1.")
Text("Item 1")
}
HStack {
Text("Item 2")
}
}
最后看起来是这样的:
1. Item 1
Item 2
在本例中,我希望排列“项目1”和“项目2”:
也就是说,“项目”部分都会对齐,无论它们是否具有列表标记,或者它们是否具有不同长度的列表标记(数字1。与100对齐。)
我试过了,但在列表中这些似乎没有得到尊重
——如果我制作对齐指南
并将其全部放在VStack中,效果会很好,但我需要列表行为
(我可以通过去掉HStacks
并执行文本(“1.\tItem 1”)
和文本(“\tItem 2”)
来假装这一点。制表位将使所有内容对齐,但我需要对列表标记和列表项应用不同的格式(粗体、颜色等),因此它们需要是离散的文本元素。)
任何想法都将不胜感激。
**更新**
希望这是更接近你正在寻找的
通过在前导值周围指定一个框架,可以控制其大小,以便根据需要修改文本值
还可以计算值以设置帧和填充,但这些硬编码值应能立即达到效果。这实际上不是关于对齐,而是关于格式化单元格内容,就像在故事板中一样:为“1”添加标签,为“项目1”添加标签,即使没有“Item2”的编号,标签仍然会在那里,空白。。。这里是相同的,只要正确设置单元格格式,结果就会得到正确的“对齐”。如果我想明确地告诉视图每个初始文本
帧应该有多宽,这很好。我更希望视图自己能解决这个问题,但我可能会同时解决。将2个HStack包装成1个VStack(对齐:。拖尾)对您有用吗?@EnesKaraosman他们排成一行,但在一行中。他们需要在自己的行中。不过,这会将整个HStack放在一个列表行中。
1. Item 1
Item 2
import SwiftUI
struct ContentView: View {
var body: some View {
List {
HStack {
Text("1.").frame(width: 20.0, height: nil, alignment: .leading)
Text("Item 1")
}
HStack {
Text("Item 2")
.padding(EdgeInsets(top: 0, leading: 28, bottom: 0, trailing: 0))
}
HStack {
Text("2.").frame(width: 20.0, height: nil, alignment: .leading)
Text("Item 3")
}
HStack {
Text("Item 4")
.padding(EdgeInsets(top: 0, leading: 28, bottom: 0, trailing: 0))
}
}
}
}