1

如何将秒列添加到UIDatePicker

我目前正在显示这个:

UIDatePicker

有了这个UIViewRepresentable在 SwiftUI

struct DurationPicker: UIViewRepresentable {
    @Binding var duration: TimeInterval

    func makeUIView(context: Context) -> UIDatePicker {
        let datePicker = UIDatePicker()
        datePicker.datePickerMode = .countDownTimer
        datePicker.addTarget(context.coordinator, action: #selector(Coordinator.updateDuration), for: .valueChanged)
        return datePicker
    }

    func updateUIView(_ datePicker: UIDatePicker, context: Context) {
        datePicker.countDownDuration = duration
    }

    func makeCoordinator() -> Coordinator {
        Coordinator(self)
    }

    class Coordinator: NSObject {
        let parent: DurationPicker

        init(_ parent: DurationPicker) {
            self.parent = parent
        }

        @objc func updateDuration(datePicker: UIDatePicker) {
            parent.duration = datePicker.countDownDuration
        }
    }
}

这是我的视图代码供参考

struct ContentView: View {
   
    @Binding var interval:TimeInterval
    
    init( interval: Binding<TimeInterval> = .constant(0) ) {
      _interval = interval
    }
    
    var body: some View {
        
        NavigationView {
            VStack {
                Text("Hello, world!")
                    .padding()

                DurationPicker(duration: $interval)
                
                NavigationLink(destination: DetailView()) {
                    Text("Show Detail View")
                }
            }
        }
    }
}

我不知道如何添加秒列,即使 iOS 上的官方时钟应用程序显示一个。

4

0 回答 0