📜  swift 5 uidatepicker 仅设置日期 - Swift (1)

📅  最后修改于: 2023-12-03 15:20:24.703000             🧑  作者: Mango

Swift 5 UIDatePicker 仅设置日期

UIDatePicker 控件用于选择日期和时间。在本文中,我们将重点介绍如何在 Swift 5 中使用 UIDatePicker 控件仅选择日期。

创建 UIDatePicker

在 Storyboard 上拖动一个 UIDatePicker 控件,或者使用以下代码创建它:

let datePicker = UIDatePicker()
datePicker.datePickerMode = .date

这里我们把 datePickerMode 属性设置为 .date。如果你想选择日期和时间,可以设置 datePickerMode 属性为 .dateAndTime。

获取选定的日期

当我们需要获取用户选择的日期时,可以使用 datePicker 的 addTarget 方法来监听控件值的变化:

datePicker.addTarget(self, action: #selector(dateChanged(_:)), for: .valueChanged)

等效于:

datePicker.addTarget(self, action: Selector("dateChanged:"), for: .valueChanged)

需要注意的是,我们需要定义一个 dateChanged 方法来获取选定的日期值。

@objc func dateChanged(_ sender: UIDatePicker?) {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy年MM月dd日"
    let str = formatter.string(from: sender!.date)
    print(str)
}

这里我们定义了一个 DateFormatter,使用 yyyy 年 MM 月 dd 日 的格式返还选定的日期,然后将其打印出来。

设置默认日期

如果需要把 datePicker 设置为某个默认日期,可以使用 setDate 方法:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy年MM月dd日"
let date = dateFormatter.date(from: "2020年01月01日")
datePicker.setDate(date!, animated: false)

这里我们设置了一个默认日期为 2020 年 01 月 01 日的 DatePicker。

至此,我们就完成了在 Swift 5 中仅选择日期功能的实现。