import SwiftUI import Kingfisher struct TargetData1: Identifiable { let id = UUID() let title: String let progress: Double let status_str: String let check: Bool let image: URL init(title: String, progress: Double, status_str: String, check: Bool, image: URL) { self.title = title self.progress = progress self.status_str = status_str self.check = check self.image = image } } struct TargetItemSwift: View { @State var target: TargetData1 var body: some View { VStack(alignment: .leading, spacing: 10) { HStack { KFImage(target.image) .resizable() .placeholder { ProgressView() } .frame(width: 50, height: 50) .cornerRadius(5) .background(Color.gray) VStack(alignment: .leading) { Text(target.title) .font(.headline) ProgressView(value: target.progress / 100) .progressViewStyle(LinearProgressViewStyle(tint: Color.blue)) HStack { Text("进度: \(Int(target.progress))%") .font(.subheadline) Spacer() if target.check { Text("已逾期") .foregroundColor(.red) .font(.subheadline) .padding(.horizontal,15) } } Text(target.status_str) .foregroundColor(.red) .font(.subheadline) } } Divider() } .padding(.vertical, 8) } } //#Preview { // TargetItemSwift( target: TargetData1(title:"训练完喝瓶AD钙",progress: 90.00, status_str:"未完成今日打卡",check: true, image: URL(string: ""))) //}