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>