You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xcode15 SwiftUI画布中用#Preview宏程序化指定预览设备?

Xcode 15 #Preview宏指定预览设备的写法

背景回顾

Xcode 15新增了#Preview宏,能简化SwiftUI的预览代码。在此之前,我们需要通过实现PreviewProvider协议来生成预览:

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello World!")
        }
    }
}

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

现在用#Preview宏可以直接简化成这样:

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello World!")
        }
    }
}

#Preview {
    ContentView()
}

核心问题:用#Preview宏指定iPhone SE预览设备

如果要替代原来通过PreviewProvider指定iPhone SE的写法,直接把.previewDevice()修饰器迁移到#Preview的闭包里就行,改写后的代码如下:

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello World!")
        }
    }
}

#Preview {
    ContentView()
        .previewDevice(PreviewDevice(rawValue: "iPhone SE"))
}

这样就能实现程序化切换预览设备,不用再手动通过画布下拉菜单选择。

内容的提问来源于stack exchange,提问作者George Hayward

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:12:53