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

我有一个简单的预览,如下所示:

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

推荐答案

Xcode 13

现在你可以用.previewInterfaceOrientation修改器在横向模式下预览,使其变成landscapeLeftlandscapeRight.

⚠️ 以下来自WWDC21的图片使用了Xcode 13 beta中提供的horizontalvertical

enter image description here


Old but not Useless method:

您可以将大小设置为PreviewProvider的任意景观大小:

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

这是iPad Mini个横向模式大小.

Update:Xcode从IDE左上角的所选模拟器中检测与预览相关的设备,并将应用安全区域,正如某些iPad和iPhone的横向模式所预期的那样.

? Master-Detail Demo

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

Demo

你也可以使用以下两种修改器:

    .environment(\.horizontalSizeClass, .regular)
    .environment(\.verticalSizeClass, .compact)

Swift相关问答推荐

SwiftUI—如何识别单词并获取视觉中的位置

expose 不透明的底层类型

SwiftUI,如何更改具有多个按钮和一个布尔条件的一个按钮标签

为什么Swift可以在没有足够信息的情况下推断类型?

为什么 XUIView 中的 Binding 看不到更新后的值?

如何在 AppDelegate for Cocoa macOS 中创建 mainMenu 和菜单项?

如何在 Combine 合并运算符的输出上使用 eraseToAnyPublisher

在主要参与者中启动分离任务和调用非隔离函数之间的区别

Swiftui 按钮依次显示一组图像

SwiftUI:异步网络请求后@State 值不更新

在 RealityKit 中创建转场

Reality Composer Tap Trigger 问题

我们如何显示关于 UITextField 是 xCode Swift 的建议?

Xcode swift ui 错误KeyPathComparator仅在 macOS 12.0 或更高版本中可用

在 Swift 中返回实例类型

如何从 Button 获取标签名称?

将强制向下转换视为可选将永远不会产生零

由于编译器中的内部保护级别,无法访问框架 init 中的公共 struct

'类 'className' 的 NSManagedObject 必须具有有效的 NSEntityDescription.错误

swift中相同的数据类型多变量声明