4.8 创建一个日期选择器

SwiftUI 的 DatePickerUIDatePicker 类似,有多种选项可以设置外观样式和工作方式,跟其它取值控件一样,它也需要绑定一个状态。

举个例子,我们创建一个日期选择器,并且把它的值显示到一个视图文本上,代码如下:

struct ContentView : View {
    var dateFormatter: DateFormatter {
        let formatter = DateFormatter()
        formatter.dateStyle = .long
        return formatter
    }

    @State var birthDate = Date()

    var body: some View {
        VStack {
            DatePicker(
                $birthDate,
                maximumDate: Date(),
                displayedComponents: .date
            )

            Text("Date is \(birthDate, formatter: dateFormatter)")
        }
    }
}

可以在上述代码看到 displayedComponents 这个属性被设置成 .data,这是日期选择,如果要时间选择,可以把这个属性设置成 .hourAndMinute。同时也设置了 maximumDate 属性,做一个最大日期的限制,当然也可以设置成 minimumDate 来限制最小日期。