Atualize a IU quando a orientação estiver mudando no SwiftUI
Comecei a aprender SwiftUI. Tento atualizar a interface do usuário quando a orientação muda. Eu adicionei @Environment(\.horizontalSizeClass) var sizeClass
em meu modo de exibição e, em seguida, o simulador de iphone atualiza a IU automaticamente quando girado. Mas o simulador de iPad não atualiza a IU quando girado. Você poderia me dizer como atualizar a IU para iPad?
Respostas
Se você der uma olhada nas classes de tamanho de dispositivo nas Diretrizes de interface humana, você notará que os iPads têm largura e altura 'Regular' tanto no modo paisagem quanto no modo retrato.
Portanto, quando você usa .horizontalSizeClass, ele funciona tanto no iPhone quanto no iPad, mas o iPad não muda o sizeClass quando é girado.
https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/
- Se você definir os tamanhos dos quadros com um GeometryReader, eles serão atualizados automaticamente quando o dispositivo for girado.
- Também é muito útil apenas definir o .frame (maxWidth :) nas visualizações, de forma que, se o iPad for paisagem, o conteúdo da visualização será limitado. Algo em torno de 715 funciona bem.