Essa provavelmente é uma pergunta simples, mas estou com muita dificuldade.
Vamos supor que eu tenha o seguinte Layout de Visualização no SwiftUI
Quero que a String de Data 10.5.2020
seja alinhada à direita no VStack pai.
Mas é importante que, ao fazer isso, o tamanho intrínseco do VStack não seja quebrado.
Estou dizendo isso porque as duas soluções mais óbvias estão fazendo isso.
- Cerque com
HStack
e coloque umSpacer
à esquerda. - Use quadro com
maxWidth: .infinity
ealignment: .trailing
Dei uma olhada mais aprofundada nos guias de alinhamento, mas não consegui consertar com isso.
Meus melhores resultados até agora foram com GeometryReader
, definindo a largura do rótulo de texto quase igual à largura do VStack circundante.
Mas infelizmente minha estrutura de alvo é muito mais complexa e essa abordagem leva a problemas nessa estrutura. Também GeometryReader
parece inapropriado fazer alinhamento.
struct ContentView: View {
var body: some View {
ScrollView {
VStack(alignment: .leading) {
HStack {
VStack(alignment: .leading) {
Text("Alignment Test")
Text("This is a longer text left aligned")
Text("10.5.2020")
}
.padding(16)
.background(Color.blue)
Spacer(minLength: 50)
}
HStack {
VStack(alignment: .leading) {
Text("left")
Text("Date should rigzht align to here <-")
Text("10.5.2020")
}
.padding(16)
.background(Color.blue)
Spacer(minLength: 50)
}
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.border(.red)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.gray.opacity(0.5))
}
}
Prévias: