web-dev-qa-db-fra.com

Alignement du texte SwiftUI

Parmi les nombreuses propriétés de la vue Text, je n'ai trouvé aucune propriété liée à l'alignement du texte. J'ai vu dans une démo qu'il gère automatiquement RTL, et lorsque vous placez des choses en utilisant body de View, il le centre toujours automatiquement.

Y a-t-il un concept qui me manque sur le système de disposition dans SwiftUI et sinon, comment puis-je définir les propriétés d'alignement du texte sur Text?

34
inokey

Si vous souhaitez conserver une largeur constante pour le texte, le ".multilineTextAlignment (.leading)" n'aura aucun effet tant qu'il n'y aura qu'une seule ligne de texte.

C'est la solution qui a fonctionné pour moi:

struct LeftAligned: ViewModifier {
    func body(content: Content) -> some View {
        HStack {
            content
            Spacer()
        }
    }
}


extension View {
    func leftAligned() -> some View {
        return self.modifier(LeftAligned())
    }
}

Usage:

Text("Hello").leftAligned().frame(width: 300)
0
Kamil Zaborowski