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

如何在SwiftUI Preview中截取预览窗口截图?

截取SwiftUI Preview窗口截图的方法

方法1:Xcode内置截图工具

  • 在SwiftUI Preview界面,点击预览窗口右上角的相机图标(📷),Xcode会自动将当前预览内容保存为PNG格式图片,默认存放在你的Mac桌面。
  • 该方法直接基于你配置的虚拟测试数据生成截图,完全不会调用模拟器或真机的自有数据。

方法2:Mac系统快捷键截图

  • 若需要包含预览窗口边框的完整截图,使用系统自带快捷键:
    • 截取全屏:Command + Shift + 3
    • 截取指定区域:Command + Shift + 4,拖动鼠标框选预览窗口即可
  • 截图默认保存到桌面,按住Control键同时按下快捷键,可将截图复制到剪贴板,直接粘贴到Figma中使用。

方法3:代码生成指定规格的高清截图

如果需要适配App Store的特定尺寸(如不同设备型号的截图要求),可以在Preview代码中添加截图逻辑:

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
            .previewDevice(PreviewDevice(rawValue: "iPhone 15 Pro"))
            .previewDisplayName("iPhone 15 Pro")
            .onAppear {
                // 生成截图并保存到桌面
                guard let window = UIApplication.shared.windows.first else { return }
                let screenshot = window.rootViewController?.view.asImage()
                if let image = screenshot {
                    let desktopURL = FileManager.default.urls(for: .desktopDirectory, in: .userDomainMask).first!
                    let saveURL = desktopURL.appendingPathComponent("AppStore_Screenshot.png")
                    try? image.pngData()?.write(to: saveURL)
                }
            }
    }
}

// UIView扩展:将视图转为图片
extension UIView {
    func asImage() -> UIImage {
        let renderer = UIGraphicsImageRenderer(bounds: bounds)
        return renderer.image { context in
            layer.render(in: context.cgContext)
        }
    }
}
  • 运行Preview后,代码会自动生成对应设备尺寸的高清截图并保存到桌面,完美适配App Store模板的尺寸需求。

内容的提问来源于stack exchange,提问作者Allen Wixted

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:03:17