Aktualisieren Sie die Benutzeroberfläche, wenn sich die Ausrichtung in SwiftUI ändert

Jan 06 2021

Ich habe angefangen, SwiftUI zu lernen. Ich versuche, die Benutzeroberfläche zu aktualisieren, wenn sich die Ausrichtung ändert. Ich habe @Environment(\.horizontalSizeClass) var sizeClassin meiner Ansicht hinzugefügt , und dann aktualisiert der iPhone-Simulator die Benutzeroberfläche automatisch, wenn er gedreht wird. Der iPad-Simulator aktualisiert die Benutzeroberfläche jedoch nicht, wenn er gedreht wird. Können Sie mir sagen, wie ich die Benutzeroberfläche für das iPad aktualisieren kann?

Antworten

nicksarno Jan 06 2021 at 04:27

Wenn Sie sich die Gerätegrößenklassen in den Richtlinien für Benutzeroberflächen ansehen, werden Sie feststellen, dass die iPads sowohl im Quer- als auch im Hochformat eine normale Breite und Höhe haben.

Wenn Sie also .horizontalSizeClass verwenden, funktioniert es sowohl auf dem iPhone als auch auf dem iPad. Es ist nur so, dass das iPad beim Drehen die sizeClass nicht ändert.

https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/

  • Wenn Sie mit einem GeometryReader Rahmengrößen festlegen, werden diese automatisch aktualisiert, wenn das Gerät gedreht wird.
  • Es ist auch sehr nützlich, nur den .frame (maxWidth :) für Ansichten festzulegen, damit der Inhalt der Ansicht begrenzt wird, wenn das iPad im Querformat ist. Irgendwo um 715 funktioniert gut.