#layout #swiftui #alignment
Вопрос:
Мой код выглядит следующим образом:
struct DotView: View {
var body: some View {
GeometryReader { geo in
let width = geo.size.width
HStack() {
VStack() {
Circle()
.frame(width: width, height: width)
Spacer()
Circle()
.frame(width: width, height: width)
}
}
}
}
}
struct TestView: View {
var body: some View {
HStack() {
Text("09")
DotView()
.frame(width: 7, height: 30, alignment: .center)
Text("22")
Text("PM")
.font(.system(size: 20))
}
.font(.system(size: 66, weight: .medium))
}
}
struct TestView_Previews: PreviewProvider {
static var previews: some View {
TestView()
}
}
Результат такой, как показано на рисунке ниже, весь вид выровнен по центру.
Как заставить «pm» выровнять «09» и «22» внизу, например, на рисунке ниже?
Ответ №1:
Вы можете использовать VStack с разделителем() и установить рамку для HStack()
struct TestView: View {
var body: some View {
HStack() {
Text("09")
DotView()
.frame(width: 7, height: 30, alignment: .center)
Text("22")
VStack { // Added VStack with Spacer()
Spacer()
Text("PM")
.font(.system(size: 20))
}
}
.frame(width: 300, height: 55) // Added Line, adjust frame of HStack
.font(.system(size: 66, weight: .medium))
}
}