如何在 UIDatePicker 中隐藏日期

How to hide days in UIDatePicker

如何在 UIDatePicker 中隐藏日期并在 UIDatePicker 中添加完成按钮。

无法使用 UIDatePicker 实现,您必须使用自定义库或您自己创建的自定义视图。

使用这个库 MonthYearPickerView-Swift:

MonthYearPickerView.swift 文件添加到您的项目并使用:

let monthYearPickerView = MonthYearPickerView()
monthlyPickerView.onDateSelected = { (month: Int, year: Int) in
    let string = String(format: "%02d/%d", month, year)
    NSLog(string) // should show something like 05/2015
}
monthYearPickerView.frame = CGRect(frame)
view.addSubview(monthYearPickerView)

注意:在 PickerView 顶部添加您自己的工具栏。

输出:

希望对您有所帮助。

无法从选择器的轮盘中完全消除日期。您可以将自己的日期选择器实现为 UIPickerView 或使用任何其他库。

您可以在自己的自定义选择器中轻松显示月份和年份。12 - 个月,即从当年算起 50 年。

//  ViewController.swift
//  PickerViewApp
//  Created by Apple on 16/06/17.
//  Copyright © 2017 Valuesol. All rights reserved.
import UIKit
class ViewController: UIViewController ,UIPickerViewDataSource,UIPickerViewDelegate{
    @IBOutlet var textField:UITextField!
    @IBOutlet var datePickerView:UIPickerView!
    @IBOutlet var CancleButton: UIBarButtonItem!
    @IBOutlet var ToolBar:UIToolbar!
    var pickerDaysmonth = [["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"],["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]];
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.datePickerView.delegate = self
        self.datePickerView.dataSource = self
    }
    @IBAction func canclebtntapped() {
        self.datePickerView.isHidden = true
        self.ToolBar.isHidden = true
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 2
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return self.pickerDaysmonth[component].count
    }
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return self.pickerDaysmonth[component][row]
    }
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        let days =  pickerDaysmonth[0][pickerView.selectedRow(inComponent: 0)]
        let month = pickerDaysmonth[1][pickerView.selectedRow(inComponent: 1)]
        textField.text =   days + " " + month
    }
}

试试这个代码 正常工作