如何仅设置 UIDatePicker 几个月



是否可以在列表中只显示月份UIDatePicker

@IBOutlet weak var monthsTextField: UITextField!
private var datePicker : UIDatePicker?
    override func viewDidLoad() {
        super.viewDidLoad()
        datePicker = UIDatePicker()
        datePicker?.datePickerMode = .date
        datePicker?.addTarget(self, action: #selector(HomePageViewController.dateChanged(datePicker: )), for: .valueChanged)
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(HomePageViewController.viewTapped(gestureRecognizer:)))
        view.addGestureRecognizer(tapGesture)
        monthsTextField.inputView = datePicker
}

@objc func dateChanged(datePicker: UIDatePicker) {
        let dateFormatter = DateFormatter()
        //dateFormatter.dateFormat = "MMMMMd"
        dateFormatter.setLocalizedDateFormatFromTemplate("MMMM")
        monthsTextField.text = dateFormatter.string(from: datePicker.date)
        //view.endEditing(true)
    }

单击屏幕底部的DatePicker后,显示带有月/日/年的列表

UIDatePicker不支持仅显示月份的模式。这样的结果不会给你一个Date.您只知道月份名称或数字。

要做你想做的事,你需要使用 UIPickerView .设置选取器视图的数据源以使用从以下位置获取的月份名称数组:

let monthNames = Calendar(identifier: .gregorian).monthSymbols

最新更新