Actualizar la interfaz de usuario cuando la orientación cambia en SwiftUI

Jan 06 2021

Empecé a aprender SwiftUI. Intento actualizar la interfaz de usuario cuando cambia la orientación. Agregué @Environment(\.horizontalSizeClass) var sizeClassen mi vista, y luego el simulador de iPhone actualiza la interfaz de usuario automáticamente cuando se gira. Pero el simulador de iPad no actualiza la interfaz de usuario cuando se gira. ¿Podría decirme cómo actualizar la interfaz de usuario para iPad?

Respuestas

nicksarno Jan 06 2021 at 04:27

Si echas un vistazo a las Clases de tamaño de dispositivo en las Pautas de interfaz humana, notarás que los iPads tienen ancho y alto 'Regular' tanto en modo horizontal como vertical.

Entonces, cuando usa .horizontalSizeClass, funciona tanto en iPhone como en iPad, es solo que el iPad no cambia sizeClass cuando se gira.

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

  • Si establece tamaños de fotograma con un GeometryReader, se actualizarán automáticamente cuando se gire el dispositivo.
  • También es bastante útil establecer el .frame (maxWidth :) en las vistas, de modo que si el iPad es horizontal, el contenido de la vista será limitado. En algún lugar alrededor de 715 funciona bien.