3.10_如何创建DatePicker并从中读取值

1. 初识

SwiftUI 中的 DatePicker 视图类似于 UIkit 中的 UIDatePicker,它提供了各种选项用来控制它的外观和工作方式。和所有存储值的控件一样,它也需要绑定到应用程序中的某种状态属性。

2. 示例

例如: 我们将创建一个日期选择器,并将其绑定到 birthDate 属性,允许用户选择现在之前的任何日期,然后按设置显示日期选择器的值,如下所示:

struct ContentView: View {
    
    var dateFormatter: DateFormatter {
        let formatter = DateFormatter()
        formatter.dateStyle = .long
        return formatter
    }
    
    @State private var birthDate = Date()
    
    var body: some View {
        VStack {
            DatePicker(selection: $birthDate,
                       in: ...Date(),
                       displayedComponents: .date) {
                Text("Select a date")
            }
            Text("Date is: \(birthDate, formatter: dateFormatter)")
        }
    }
}

效果预览: 3.10_date_picker_select_birthdate

可以看到我已经将 DisplayedComponents 设置为 .Date,但您也可以使用 .hourAndMinute来获取时间数据。

使用 in:... Date() 将日期范围指定为直到当前日期(包括当前日期)的所有内容,但不包含之后的任何内容。 也可以使用 in:Date()... 进行相反的操作(即允许从现在开始的日期),但是如果需要的话,也可以使用精确范围。

Avatar
M X
Mobile, Front-End Developer

My research interests include swift developing, python developing and go developing.

Related

Next
Previous
comments powered by Disqus