기본 콘텐츠로 건너뛰기

SwiftUI, Calendar Library, GridDate, Test

 import SwiftUI

import DateGrid


struct ContentView: View {

    


    

    @State var selectedMonthDate = Date()

    @State var mode = CalenderMode.month(estimateHeight: 500)

    

    let dateInterval = DateInterval.init(start: Date.getDate(from: "2021 01 01")!, end: Date.getDate(from: "2021 12 11")!)

    

    let screen = UIScreen.main.bounds

    

    init(){

        

        var dateComponents = DateComponents()

        dateComponents.year = 2021

        dateComponents.month = 12

        dateComponents.day = 11

        let userCalendar = Calendar(identifier: .gregorian) // since the components above (like year 1980) are for Gregorian

        let someDateTime = userCalendar.date(from: dateComponents)

        

        

        //doen't work...

        selectedMonthDate = someDateTime!

        

        

    }

    

    var body: some View {


        

        ZStack{

            VStack{

                

                Text("xxxx年 xx月")

                

                let week = ["日","月","火","水","木","金", "土"]

                HStack{

                    

                    ForEach(week, id: \.self){ weekOfDay in

                        if weekOfDay == week[0] {

                            ZStack{

                                

                                Text("\(weekOfDay)")

                                    .frame(maxWidth: (screen.width/7) )

                                    .padding(10.0)

                                    .overlay(Circle().fill().foregroundColor(.red))

                                    

                                Text("\(weekOfDay)").bold()

                                    .frame(maxWidth: (screen.width/7) )

                                    .foregroundColor(.white)

                                    .padding(10.0)

                            

                                

                            }

                        }else if weekOfDay == week[6] {

                            Text("\(weekOfDay)")

                                .frame(maxWidth: (screen.width/7) )

                                .padding(10.0)

                                .overlay(Circle().stroke(lineWidth: 2.0))

                                .foregroundColor(.blue)

                        }else{

                            

                            Text("\(weekOfDay)")

                                .frame(maxWidth: (screen.width/7) )

                                .padding(10.0)

                                .overlay(Circle().stroke(lineWidth: 2.0))

                                .foregroundColor(.black)

                        }

                    }

                    

                }.frame(maxWidth:.infinity)

                

                ScrollView{

                    DateGrid(interval: dateInterval , selectedMonth: $selectedMonthDate, mode: .month(estimateHeight: 600)) { dateGridDate in

                        

                        VStack{

                            

                            

                            if Int(Calendar.current.component(.weekday, from: dateGridDate.date)) == 7 {


                                

                                Text("\(dateGridDate.date.day)")

                                    .padding(10.0)

                                    .overlay(

                                        Circle()

                                            .stroke(lineWidth: 2.0)

                                    )

                                    .foregroundColor(.blue)

                                

                            }else if Int(Calendar.current.component(.weekday, from: dateGridDate.date)) == 1 {

                                Text("\(dateGridDate.date.day)")

                                    .padding(10.0)

                                    .overlay(

                                        Circle()

                                            .stroke(lineWidth: 2.0)

                                    )

                                    .foregroundColor(.red)

                                

                            }else{

                                Text("\(dateGridDate.date.day)")

                                    .padding(10.0)

                                    .overlay(

                                        Circle()

                                            .stroke(lineWidth: 2.0)

                                    )

                                    .foregroundColor(.black)

                                

                            }

                        }

                    }

                }

            }

        }


    }

    

}


struct ContentView_Previews: PreviewProvider {

    static var previews: some View {

        ContentView()

    }

}

댓글

이 블로그의 인기 게시물

Android, 서명이 충돌하는 같은 이름의 기존 패키지가 이미 설치되어 있습니다.

Nexus 7 1세대 4.4 Kitkat 앱이 설치되지 않습니다. 서명이 충돌하는 같은 이름의 기존 패키지가 이미 설치되어 있습니다. 위의 증상으로 apk로 앱이 설치되지 않음. 설치되어있는 앱을 지우고 다시 설치하려고 해도 되지 않음. 구글 플레이에서 설치할때도 비활성->활성되는듯 설치 딜레이가 없었음. 앱을 삭제할시 해당사용자에서 링크만 삭제되는 듯이 보임. 어플리케이션 리스트의 가장밑에 설치하려는 앱의 아이콘을 발견.(삭제됨이라고 표시) 그 앱의 메뉴를 열어 "모든 사용자에서 삭제"를 선택하면 앱의 아이콘이 사라진다. 그후 apk를 설치하면 정상으로 진행.