如何在SwiftUI中以横向模式预览设备?

Fel*_*eña 14 xcode ios swift swiftui xcode11

如何在SwiftUI中以横向模式预览设备?

我只有一个简单的预览,像这样:

struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

Moj*_*ini 11

无法在预览中旋转设备),但可以将尺寸设置为所需的任何横向尺寸PreviewProvider

struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
            .previewLayout(.fixed(width: 568, height: 320)) // iPhone SE landscape size
    }
}
Run Code Online (Sandbox Code Playgroud)

这是iPhone SE横向模式的大小。

注意:由于大小是完全自定义的,因此Xcode无法推断与其关联的设备,并且不会像某些iPad和iPhone横向模式那样应用安全区域。

  • 谢谢。Apple 发布横向模式之前的最佳答案。 (3认同)
  • 我不同意; _today_的最佳答案是无法完成。固定大小不会考虑安全区域(如前所述),但是不会调整辅助镶边的大小,例如状态,导航和标签栏。最后,在iPad上,它将无法正确显示主视图/详细视图。 (3认同)

paw*_*222 5

iOS 15+ / Xcode 13+

从 iOS 15 开始我们可以使用previewInterfaceOrientation

struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
            .previewInterfaceOrientation(.landscapeRight)
    }
}
Run Code Online (Sandbox Code Playgroud)