📜  swift 5 uidatepicker 显示内联 - Swift (1)

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

Swift 5 UIDatePicker显示内联

简介

本文介绍了如何使用Swift 5中的UIDatePicker在iOS应用程序中显示内联日期选择器。

步骤
1. 添加UIDatePicker

首先,我们需要向视图添加UIDatePicker。可以通过Storyboard或者代码来实现。

let datePicker = UIDatePicker()

或者使用Storyboard可以通过下面步骤实现:

  1. 从Xcode中打开Storyboard。

  2. 在Storyboard中,将UIDatePicker从Object库拖动到视图控制器中。

  3. 选择UIDatePicker并在属性检查器中设置样式为inline。

2. 设置日期格式

我们可以设置UIDatePicker的日期格式并将其应用到UILabel中。

let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none

let dateString = dateFormatter.string(from: datePicker.date)

label.text = "Date: \(dateString)"
3. 添加日期变化监听

我们需要监听日期的变化,以便在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。