Dans une vue SwiftUI, j'ai plusieurs Text
éléments dans un HStack
. En fonction de la saisie de l'utilisateur, il n'y aura pas d'espace horizontal pour afficher tous les textes. Le site HStack
fait bien son travail en s'assurant que tous les Text
les éléments ont une largeur égale et les chaînes sont tronquées. Tout cela est conforme à ce qui est attendu et à ce qui devrait être.
Le problème est que toutes les chaînes de caractères sont tronquées avec un "..." à la fin alors que je veux le comportement de UILabel.lineBreakMode = .byClipping
c'est-à-dire que la ficelle doit simplement être coupée au bord de l'écran. Text
élément.
Comment puis-je y parvenir ?
Editer pour plus de détails sur ce que je veux :
import SwiftUI
struct TextClipPoC: View {
var body: some View {
HStack {
textElm
textElm
textElm
textElm
}
}
var textElm: some View {
Text("abcdefghijklmn")
.padding(.all, 3)
.background(Color.yellow)
}
}
struct TextClipPoC_Previews: PreviewProvider {
static var previews: some View {
TextClipPoC()
.previewLayout(.fixed(width: 320, height: 40))
}
}
Je veux exactement la même sortie que ci-dessus, sauf qu'au lieu de "...", je veux que le texte soit simplement coupé.
Si j'ajoute juste .fixedSize()
à la HStack
(ou à la Text
), comme suggéré dans une solution, j'obtiens ce résultat :