ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SwiftUI Picker 60 - Picker 다중 컬럼 피커뷰 및 현재 시간
    SwiftUI 100 레시피/Pickers 2022. 6. 27. 15:56

    import SwiftUI

     

    struct ContentView: View {

        

        @State private var selectedHour: Int = 0

        @State private var selectedMinute: Int = 0

        

        var selectedTime: Date?{

            

            var clendarDateComponts = Calendar.current.dateComponents([.day, .year, .month], from: Date())

            

            clendarDateComponts.hour = selectedHour

            clendarDateComponts.minute = selectedMinute

            

            let current = Calendar.current.date(from: clendarDateComponts)

            

            return current

        }

        

        var body: some View {

            

            

            GeometryReader{ geomtry in

            

                VStack {

                    HStack{

                        Spacer()

                        VStack {

                            Text("Hour")

                            Picker("Hour", selection: $selectedHour){

                                ForEach(1...12, id: \.self){hour in

                                    Text("\(hour)").tag(hour)

                                }

                            }

                                .frame(width: geomtry.size.width/3)

                                .clipped()

                            

                        }

                        Spacer()

                        VStack {

                            Text("Minute")

                            Picker("Minute", selection: $selectedMinute){

                                ForEach(1...60, id: \.self){minute in

                                    Text("\(minute)").tag(minute)

                                }

                            }

                            

                                .frame(width: geomtry.size.width/3)

                                .clipped()

                            

                        }

                        Spacer()

                    }

                    .frame(maxWidth: .infinity, maxHeight: 500)

                    .pickerStyle(InlinePickerStyle())

                    

                    selectedTime.map{

                        Text("\($0)")

                            //.font(.caption)

                            .fontWeight(.bold)

                    }

                

                    

                    

                    

                }

            }

        }

    }

     

    struct ContentView_Previews: PreviewProvider {

        static var previews: some View {

            ContentView()

        }

    }

     

    댓글

Designed by Tistory.