Comment puis-je afficher le texte de sa longueur sans changer la largeur du vstack et donc la distance entre les carrés . P> Il devrait ressembler à ceci: p> < img src = "https://i.stack.imgur.com/6gmgz.png" alt = "devrait ressembler à ceci"> p> p>
3 Réponses :
Pas clair ce que vous demandez ici, mais avez-vous essayé quelque chose comme ceci:
let months = ["january" , "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"] var body: some View { ScrollView (.horizontal, showsIndicators: false) { HStack { ForEach(months, id: \.self) { month in VStack { Text(month).fixedSize() // <--- this Rectangle().frame(width: 25, height: 10) } } } } }
J'ai mis à jour mon message avec une photo montrant avec comment il devrait ressembler
OK, que diriez-vous de ce piratage alors:
let months = ["january" , "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"] @State var chosenMonth = "" var body: some View { VStack { HStack { Spacer() Text(chosenMonth) Spacer() } HStack { ForEach(self.months, id: \.self) { month in Rectangle().frame(width: 25, height: 10).onAppear(perform: { if month == "october" { self.chosenMonth = month } }) } } } }
Voici une approche possible basée sur les guides d'alignement. Testé avec Xcode 11.4 / iOS 13.4
L'idée est d'utiliser des barres et du texte sur différentes couches et de les aligner à l'aide d'un guide d'alignement personnalisé, avec la manipulation des boîtiers de coin pour ne pas autoriser le texte hors de l'écran. P>
< un href = "https://i.stack.imgur.com/svepa.png" rel = "nofollow noreferrer"> p>