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

