如何将SwiftUI的PreviewProvider转换为#Preview语法?
转换步骤
- 删除原代码中整个
CardView_Preview结构体 - 用
#Preview宏替代,将原预览逻辑放到宏的闭包内,同时把所需的scrum变量直接定义在闭包中
修改后的完整代码
import SwiftUI struct CardView: View{ let scrum: DailyScrum var body: some View{ VStack(alignment: .leading){ Text(scrum.title) .font(.headline) Spacer() HStack{ Label("\(scrum.attendees.count)", systemImage: "person.3") Spacer() Label("\(scrum.lengthInMinutes)", systemImage: "clock") .labelStyle(.trailingIcon) } .font(.caption) } .padding() .foregroundColor(scrum.theme.accentColor) } } #Preview { let scrum = DailyScrum.sampleData[0] return CardView(scrum: scrum) .background(scrum.theme.mainColor) .previewLayout(.fixed(width: 400, height: 60)) }
补充说明
#Preview是SwiftUI 3.0及以上版本推出的简化预览语法,相比传统的PreviewProvider结构体写法更简洁直观,无需额外定义静态属性和previews计算属性,直接在宏闭包内编写预览内容即可。如果需要创建多个预览,还可以给#Preview添加名称参数区分,比如#Preview("Card View") { ... }。
内容的提问来源于stack exchange,提问作者user22502634
相关产品推荐
相关产品推荐

