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

如何在Xcode中使用#Preview宏?Xcode15预览代码重构求助

Xcode 15 #Preview宏使用指南与代码重构

一、#Preview宏基础用法

Xcode15引入的#Preview宏彻底简化了SwiftUI预览写法,不用再写繁琐的PreviewProvider结构体:

  • 直接用#Preview声明预览块,括号里可给预览加名称(可选)
  • 宏的闭包内直接返回要预览的视图,也可提前准备好数据源再传入
  • 多个预览需求直接写多个#Preview块即可,互不干扰
  • 还能快速设置预览设备、深色模式等特性,比如#Preview(device: .iPhone15, traits: .darkMode) { ... }

二、你的代码重构适配

针对你提供的HistoryView_Previews代码,用#Preview宏重构后的写法有两种:

写法一:提前抽离测试数据(更易复用)

// 定义预览专用的测试数据
private let previewHistory = History(attendees: [
    DailyScrum.Attendee(name: "Jon"),
    DailyScrum.Attendee(name: "Darla"),
    DailyScrum.Attendee(name: "Luis")
],
transcript: "Darla, would you like to start today? Sure, yesterday I reviewed Luis' PR and met with the design team to finalize the UI...")

// 创建预览
#Preview("历史记录视图") {
    HistoryView(history: previewHistory)
}

写法二:数据内嵌在预览块中(更紧凑)

#Preview("历史记录视图") {
    let history = History(attendees: [
        DailyScrum.Attendee(name: "Jon"),
        DailyScrum.Attendee(name: "Darla"),
        DailyScrum.Attendee(name: "Luis")
    ],
    transcript: "Darla, would you like to start today? Sure, yesterday I reviewed Luis' PR and met with the design team to finalize the UI...")
    return HistoryView(history: history)
}

两种写法都能在Xcode15中正常显示HistoryView的预览,选哪种看你对代码复用的需求。

内容的提问来源于stack exchange,提问作者fuRjNg JGYKK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:37:38