首页 > 解决方案 > 我的 UIDatePicker 没有出现正确的格式

问题描述

这是我的代码。

extension ProfileViewController {
    private func openDatePicker() {
        let datePicker = UIDatePicker()
        datePicker.datePickerMode = .date
        ageTextFieldOutlet.inputView = datePicker
        let toolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 44))
        let cancleButton = UIBarButtonItem(title: "Cancle", style: .plain, target: self, action: #selector(cancleButtonClicked))
        let doneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(doneButtonClicked))
        let flexibleBtn = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
        toolBar.setItems([cancleButton, flexibleBtn, doneButton], animated: true)
        ageTextFieldOutlet.inputAccessoryView = toolBar
    }
    
    @objc func cancleButtonClicked() {
        ageTextFieldOutlet.resignFirstResponder()
    }
    @objc func doneButtonClicked() {
        if let datePiker = ageTextFieldOutlet.inputView as? UIDatePicker {
            print(datePiker.date)
        }
    }
}
// MARK: - UITextFieldDelegate For Age
extension ProfileViewController: UITextFieldDelegate {
    func textFieldDidBeginEditing(_ textField: UITextField) {
        self.openDatePicker()
    }
}

和图像以便更好地理解。

当我运行我的项目时,我得到了这种类型的选择器 当我运行我的项目时,我得到了这种类型的选择器

我想要这种类型的日期选择器 我想要这种类型的日期选择器

标签: iosswiftswiftui-datepicker

解决方案


在较新版本的 iOS(13.4+)中,如果您想要滚轮日期选择器,则需要指定样式,默认情况下它是自动的,并且通常默认为紧凑,在这种情况下,当您创建新的 UIDatePicker 时,您可以这样做:

        let datePicker = UIDatePicker()
        datePicker.datePickerMode = .date
        datePicker.preferredDatePickerStyle = .wheels
        ageTextFieldOutlet.inputView = datePicker

文件:


推荐阅读