📅  最后修改于: 2023-12-03 15:20:24.711000             🧑  作者: Mango
本文介绍了如何使用Swift 5中的UIDatePicker在iOS应用程序中显示内联日期选择器。
首先,我们需要向视图添加UIDatePicker。可以通过Storyboard或者代码来实现。
let datePicker = UIDatePicker()
或者使用Storyboard可以通过下面步骤实现:
从Xcode中打开Storyboard。
在Storyboard中,将UIDatePicker从Object库拖动到视图控制器中。
选择UIDatePicker并在属性检查器中设置样式为inline。
我们可以设置UIDatePicker的日期格式并将其应用到UILabel中。
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none
let dateString = dateFormatter.string(from: datePicker.date)
label.text = "Date: \(dateString)"
我们需要监听日期的变化,以便在UIDatePicker更改时更新UILabel。
datePicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)
然后,在视图控制器中添加一个函数来更新UILabel。
@objc func datePickerValueChanged(_ sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none
let dateString = dateFormatter.string(from: sender.date)
label.text = "Date: \(dateString)"
}
class ViewController: UIViewController {
@IBOutlet weak var datePicker: UIDatePicker!
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
datePicker.datePickerMode = .date
datePicker.preferredDatePickerStyle = .inline
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none
let dateString = dateFormatter.string(from: datePicker.date)
label.text = "Date: \(dateString)"
datePicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)
}
@objc func datePickerValueChanged(_ sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none
let dateString = dateFormatter.string(from: sender.date)
label.text = "Date: \(dateString)"
}
}
通过本文,我们学习了如何在Swift 5中使用UIDatePicker来显示内联日期选择器。我们添加了UIDatePicker,设置了日期格式,并监听了日期的变化。完成后我们得到了一个日期选择器,当值改变时可以实时更新UILabel。