【问题标题】:How to set UIDatePicker only for months如何仅将 UIDatePicker 设置为几个月
【发布时间】:2019-04-13 15:59:59
【问题描述】:

是否可以在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 后会显示带有月/日/年的列表

【问题讨论】:

  • 你只想要 1-12(或 1-12 月)而不想要别的?
  • 是的,我只需要从 1 月到 12 月的值
  • 我认为你应该改用自定义的UIPickerView
  • @TungVuDuc 谢谢,我认为可以从UIDatePicker 中仅选择月份值。我会改的

标签: ios swift datepicker


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2022-09-27
    相关资源
    最近更新 更多