메인 프로젝트 카드


var body : some View {
VStack(alignment: .leading, spacing: 0) {
Rectangle().frame(height: 0)
Text("유재우 유튜브 프로젝트")
.font(.system(size: 23))
.fontWeight(.black)
.padding(.bottom, 5)
Text("10 AM ~ 11 AM")
.foregroundColor(.secondary)
Spacer().frame(height: 20)
HStack {
Image("random1")
.resizable()
.frame(width: 50, height: 50)
.clipShape(Circle())
.overlay(
Circle()
.stroke(lineWidth: 5)
.foregroundColor(Color.red))
Image("random2")
.resizable()
.frame(width: 50, height: 50)
.clipShape(Circle())
Image("random3")
.resizable()
.frame(width: 50, height: 50)
.clipShape(Circle())
Spacer()
Text("확인")
.fontWeight(.bold)
.foregroundColor(.white)
.padding()
.frame(width: 80)
.background(Color.blue)
.cornerRadius(20)
}
}
.padding(30)
.background(Color.yellow)
.cornerRadius(20)
}
베이직 프로젝트 카드

var body : some View {
HStack(spacing: 20){
Image(systemName: "flame.fill")
.font(.system(size: 40))
.foregroundColor(Color.white)
VStack(alignment: .leading, spacing: 0) {
Divider().opacity(0)
// Rectangle().frame(height: 0)
Text("유재우 유튜브 프로젝트")
.font(.system(size: 23))
.foregroundColor(.white)
.fontWeight(.bold)
Spacer().frame(height: 5)
Text("10 AM ~ 11 AM")
.foregroundColor(.white)
}
}
.padding(20)
.background(Color.purple)
.cornerRadius(20)
}
contentView에서 활용 되는 법

var body: some View {
ZStack(alignment: .bottomTrailing){ // .bottomTrailing :쌓이는 버튼을 오른쪽 아래로 설정함
VStack(alignment: .leading, spacing: 0){
HStack{
Image(systemName: "line.horizontal.3")
.font(.largeTitle)
Spacer()
Image(systemName: "person.crop.circle.fill")
.font(.largeTitle)
}
.padding(20)
Text("유재우 할일 목록")
.font(.system(size: 40))
.fontWeight(.black)
.padding(.horizontal, 20)
ScrollView{
VStack{
MyProjectCard()
MyBasicCard()
MyBasicCard()
MyBasicCard()
MyBasicCard()
MyBasicCard()
MyBasicCard()
MyBasicCard()
MyBasicCard()
}.padding(.horizontal, 20)
}
}
Circle()
.foregroundColor(Color.yellow)
.frame(width: 60, height: 60)
.overlay(
Image(systemName: "plus")
.font(.system(size: 30))
.foregroundColor(Color.white))
.padding(10)
.shadow(radius: 20)
}
}
}