У меня 5 VStacks
в HStack
, которое охватывает ширину экрана. VStack
содержит Text
Представления, которые имеют разную ширину, потому что они отображают разный текст. Что я хочу сделать, так это выровнять центр каждого VStack
так, чтобы они были равномерно отделены друг от друга и краев экрана. Я знаю ширину экрана (я использовал GeometryReader
), и я почти уверен, что для получения значения x каждого VStack
мне нужно разделить ширину экрана на 6 и что центр каждого VStack
должен приходиться на ширину экрана, разделенную на 6, а затем умноженную на число, которое представляет его позицию в HStack
(таким образом, первое VStack
в верхней части HStack
будет равно 1). Поскольку все VStacks
имеют разную ширину, я не думаю, что могу использовать аргумент spacing
в HStack
, чтобы выполнить sh this. Таким образом, мне нужен способ выровнять центр каждого VStack
одинаково, чтобы между каждым из них и краем экрана было ровное пространство.
Вот мой код:
HStack() {
VStack(spacing: 10){
Text("123")
.foregroundColor(Color.white)
Text("Value 1")
.foregroundColor(Color.gray)
}
VStack(spacing: 10){
Text("6534675")
.foregroundColor(Color.white)
Text("Value 23")
.foregroundColor(Color.gray)
}
VStack(spacing: 10){
Text("6534")
.foregroundColor(Color.white)
Text("Value 203")
.foregroundColor(Color.gray)
}
VStack(spacing: 10){
Text("1055")
.foregroundColor(Color.white)
Text("Value 4589")
.foregroundColor(Color.gray)
}
VStack(spacing: 10){
Text("4")
.foregroundColor(Color.white)
Text("Value 5")
.foregroundColor(Color.gray)
}
}.frame(width: geo.size.width)