49

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

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

struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
4

3 回答 3

58

Xcode 13

现在您可以使用修饰符在横向模式下预览,.previewInterfaceOrientation使其landscapeLeftlandscapeRight.

⚠️ WWDC21 使用的以下图片horizontal在Xcode 13 betavertical不可用!

在此处输入图像描述


老但不是无用的方法:

您可以将大小设置为您想要的任何横向大小PreviewProvider

struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
           .previewLayout(.fixed(width: 1024, height: 768))
           // iPad Mini landscape size
    }
}

这是iPad Mini横向模式大小。

更新:Xcode 从 IDE 左上角的选定模拟器中检测到与预览相关联的设备,它将按照您对某些 iPad 和 iPhone 横向模式的预期应用安全区域。

主从演示

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("Master")
            Text("Detail")
        }
    }
}

演示

此外,您可以根据需要使用这两个修饰符:

    .environment(\.horizontalSizeClass, .regular)
    .environment(\.verticalSizeClass, .compact)
于 2019-06-17T10:53:44.937 回答
4
ContentView().previewLayout(PreviewLayout.fixed(width:568,height:320))

查看 - 不同设备的 IOS 屏幕尺寸

于 2020-05-26T22:17:58.593 回答
1

iOS 15 / Xcode 13

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

struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
            .previewInterfaceOrientation(.landscapeRight)
    }
}
于 2021-06-07T20:35:35.387 回答