Mettre à jour l'interface utilisateur lorsque l'orientation change dans SwiftUI
J'ai commencé à apprendre SwiftUI. J'essaie de mettre à jour l'interface utilisateur lorsque l'orientation change. J'ai ajouté @Environment(\.horizontalSizeClass) var sizeClass
dans ma vue, puis le simulateur d'iphone met à jour automatiquement l'interface utilisateur lors de la rotation. Mais le simulateur iPad ne met pas à jour l'interface utilisateur lors de la rotation. Pouvez-vous me dire comment mettre à jour l'interface utilisateur pour iPad?
Réponses
Si vous regardez les classes de taille de périphérique dans les directives de l'interface utilisateur, vous remarquerez que les iPad ont une largeur et une hauteur «régulières» en mode paysage et portrait.
Ainsi, lorsque vous utilisez .horizontalSizeClass, cela fonctionne à la fois sur iPhone et iPad, c'est juste que l'iPad ne change pas de sizeClass lorsqu'il est tourné.
https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/
- Si vous définissez des tailles de cadre avec un GeometryReader, elles seront automatiquement mises à jour lors de la rotation de l'appareil.
- Il est également très utile de définir simplement le .frame (maxWidth :) sur les vues, de sorte que si l'iPad est en mode paysage, le contenu de la vue sera limité. Quelque part autour de 715 fonctionne bien.