91 lines
2.7 KiB
Swift
91 lines
2.7 KiB
Swift
|
|
|
|
import SwiftUI
|
|
|
|
//struct TargetData1: Identifiable{
|
|
// let id: UUID
|
|
// let title: String
|
|
// let progress: Double
|
|
// let status_str: String
|
|
// let check: Bool
|
|
// let image: String
|
|
// init(id: UUID = UUID(),title: String, progress: Double, status_str: String, check: Bool, image: String) {
|
|
// self.id = id
|
|
// self.title = title
|
|
// self.progress = progress
|
|
// self.status_str = status_str
|
|
// self.check = check
|
|
// self.image = image
|
|
// }
|
|
//}
|
|
|
|
|
|
struct ContentView1: View {
|
|
@State var items: [TargetData1] = [
|
|
// TargetData1(title:"训练完喝瓶AD钙",progress: 14.29, status_str:"未完成今日打卡",check: true, image:"image-5"),
|
|
// TargetData1(title:"训练完喝瓶AD钙",progress: 14.29, status_str:"未完成今日打卡", check:true, image:"image-5"),
|
|
// TargetData1(title:"哭泣的骆驼",progress: 14.29,status_str: "未完成今日打卡",check: true, image:"image-5"),
|
|
// TargetData1(title:"训练完喝瓶AD钙",progress: 14.29, status_str:"未完成今日打卡",check: true, image:"image-5")
|
|
]
|
|
|
|
@State private var selectedTab = "全部"
|
|
|
|
var body: some View {
|
|
VStack(spacing: 0) {
|
|
// Top Tab Bar
|
|
HStack {
|
|
TabButton(title: "全部", selectedTab: $selectedTab)
|
|
TabButton(title: "进行中", selectedTab: $selectedTab)
|
|
TabButton(title: "已完成", selectedTab: $selectedTab)
|
|
TabButton(title: "已逾期", selectedTab: $selectedTab)
|
|
}
|
|
.frame(height: 50)
|
|
.background(Color.white)
|
|
|
|
ScrollView(){
|
|
ForEach(items){item in
|
|
TargetItemSwift(target:item)
|
|
|
|
}
|
|
}
|
|
// Item List
|
|
// List(items)
|
|
}
|
|
.background(Color(UIColor.systemGroupedBackground))
|
|
}
|
|
}
|
|
|
|
struct TabButton: View {
|
|
var title: String
|
|
@Binding var selectedTab: String
|
|
|
|
var body: some View {
|
|
Button(action: {
|
|
selectedTab = title
|
|
}) {
|
|
VStack {
|
|
Text(title)
|
|
.foregroundColor(selectedTab == title ? Color.blue : Color.gray)
|
|
if selectedTab == title {
|
|
Rectangle()
|
|
.frame(height: 2)
|
|
.foregroundColor(Color.blue)
|
|
} else {
|
|
Rectangle()
|
|
.frame(height: 2)
|
|
.foregroundColor(Color.clear)
|
|
}
|
|
}
|
|
}
|
|
.frame(maxWidth: .infinity)
|
|
}
|
|
}
|
|
|
|
|
|
struct ContentView1_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
ContentView1()
|
|
}
|
|
}
|
|
|