如何在 SwiftUI 中以横向模式预览设备?
How can I preview a device in landscape mode in SwiftUI?
如何在 SwiftUI 中以横向模式预览设备?
我只是有一个像这样的简单预览:
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
Xcode 13
现在您可以在横向模式下使用 .previewInterfaceOrientation
修饰符进行预览,使其成为 landscapeLeft
或 landscapeRight
。
⚠️ WWDC21 的下图使用 horizontal
和 vertical
即 NOT 在 Xcode 13 beta 中可用!
古老但并非无用的方法:
您可以将尺寸设置为您想要的任何横向尺寸 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 横向模式的安全区域。
Master-Detail 演示
struct ContentView: View {
var body: some View {
NavigationView {
Text("Master")
Text("Detail")
}
}
}
此外,您可以根据需要使用这两个修改器:
.environment(\.horizontalSizeClass, .regular)
.environment(\.verticalSizeClass, .compact)
ContentView().previewLayout(PreviewLayout.fixed(width:568,height:320))
iOS 15 / Xcode 13
从iOS15开始我们可以使用previewInterfaceOrientation
:
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
.previewInterfaceOrientation(.landscapeRight)
}
}
如何在 SwiftUI 中以横向模式预览设备?
我只是有一个像这样的简单预览:
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
Xcode 13
现在您可以在横向模式下使用 .previewInterfaceOrientation
修饰符进行预览,使其成为 landscapeLeft
或 landscapeRight
。
⚠️ WWDC21 的下图使用 horizontal
和 vertical
即 NOT 在 Xcode 13 beta 中可用!
古老但并非无用的方法:
您可以将尺寸设置为您想要的任何横向尺寸 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 横向模式的安全区域。
Master-Detail 演示
struct ContentView: View {
var body: some View {
NavigationView {
Text("Master")
Text("Detail")
}
}
}
此外,您可以根据需要使用这两个修改器:
.environment(\.horizontalSizeClass, .regular)
.environment(\.verticalSizeClass, .compact)
ContentView().previewLayout(PreviewLayout.fixed(width:568,height:320))
iOS 15 / Xcode 13
从iOS15开始我们可以使用previewInterfaceOrientation
:
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
.previewInterfaceOrientation(.landscapeRight)
}
}