如何在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
相关产品推荐
相关产品推荐

