如何在 SwiftUI 中给 DatePicker 一个分钟的时间间隔

den*_*nho 8 swift swiftui

有谁知道如何给分钟 DatePicker 一个间隔?我试图只显示 15 的倍数(0、15、30、45)。这是否只能通过与 UIKit 接口来实现?

我相信它没有使用in: ...Date()零件,至少我想不出解决方案。这是我的片段:

DatePicker(
                "",
                selection: $selectedDate,
                /*in: ...Date(),*/
                displayedComponents: .hourAndMinute
            )
Run Code Online (Sandbox Code Playgroud)

非常感谢!

Fry*_*Fry -1

使用两个选择器,一个代表小时,一个代表分钟,然后转换为 Date() 怎么样?它并不漂亮,但这已经是其中的一部分了:

struct ContentView: View {
    @State private var hour = 1
    @State private var minute = 0

    let minutes = [0, 15, 30, 45]

    var body: some View {
        GeometryReader { geometry in
            HStack {
                Picker("Hour", selection: self.$hour) {
                    ForEach(1...12, id: \.self) {
                        Text("\($0)")
                    }
                }
                .labelIsHidden()
                .frame(maxWidth: geometry.size.width / 4)
                .clipped()

                Picker("Minutes", selection: self.$minute) {
                    ForEach(self.minutes, id: \.self) { minute in
                        Text(minute == 0 ? " : 0\(minute)" : " : \(minute)")
                    }
                }
                .labelIsHidden()
                .frame(maxWidth: geometry.size.width / 4)
                .clipped()

            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)