#swiftui
#swiftui
Вопрос:
Я пытаюсь добавить строку внизу a VStack
, которая заполняет ширину VStack
, которая определяется другим содержимым в VStack
, но Rectangle
я использую заполняет доступное пространство всего представления.
struct ContentView: View {
var body: some View {
VStack {
Text("Testing123")
Rectangle().frame(height: 2)
}
}
}
Как я могу сделать Rectangle
так, чтобы единственное значение имело ширину, необходимую для VStack
соответствия его содержимому?
Комментарии:
1. Я думаю, вы можете сделать то, что хотите, с
.background
помощью или.overlay
VStack
. На эту ширину влияет ширинаVStack
, поэтому вы можете поместить на нее строку с некоторым дополнительным кодом, который связан с элементом выравнивания, таким как.frame
илиVStack
.
Ответ №1:
Вот один из способов сделать это.
Поместите свой Rectangle
в один .overlay()
из VStack
. Поместите прямоугольник в его собственный VStack
и используйте a Spacer
, чтобы нажать Rectangle
на дно. Управляйте расстоянием между прямоугольником и вашим оригиналом VStack
, добавляя .padding
к последнему виду в VStack
.
struct ContentView: View {
var body: some View {
VStack {
Text("Hi")
Text("Testing123")
Text("Bye").padding(.bottom, 10)
}
.overlay(
VStack {
Spacer()
Rectangle().frame(height: 2)
}
)
}
}