如何仅在几个月内设置UIDatePicker

问题描述 投票:0回答:1

是否有可能只在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后,显示月份/日/年的列表

ios swift datepicker
1个回答
0
投票

UIDatePicker不支持仅显示几个月的模式。而这样的结果不会给你一个Date。你只知道一个月的名字或号码。

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

let monthNames = Calendar(identifier: .gregorian).monthSymbols
© www.soinside.com 2019 - 2024. All rights reserved.