如何在iOS中使用DatePicker只接受月份和年份

如何在iOS中使用DatePicker只接受月份和年份,ios,objective-c,swift,datepicker,Ios,Objective C,Swift,Datepicker,我正在使用swift构建一个应用程序,该应用程序中有一个字段用于接受用于支付目的的借记卡的到期日期。如何在Swift中使用DatePicker只接受月份和年份 如果无法使用datepicker,请建议其他方法 提前感谢您。这不是一个真正的答案,而是一个替代方案:为什么不像大多数应用程序那样,每月使用一个选择器,一年使用一个选择器(在网站上也使用类似的弹出菜单)Choice-1 目标-C yourDatepicker.datePickerMode = UIDatePickerModeDate;

我正在使用swift构建一个应用程序,该应用程序中有一个字段用于接受用于支付目的的借记卡的到期日期。如何在Swift中使用DatePicker只接受月份和年份

如果无法使用datepicker,请建议其他方法


提前感谢您。

这不是一个真正的答案,而是一个替代方案:为什么不像大多数应用程序那样,每月使用一个选择器,一年使用一个选择器(在网站上也使用类似的弹出菜单)

Choice-1

目标-C

yourDatepicker.datePickerMode = UIDatePickerModeDate;
Swift

 yourDatepicker.datePickerMode = UIDatePickerMode.Date
Swift3

yourDatepicker.datePickerMode = .date
另一种模式是

  • UIDatePickerModeTime
  • UIDatePickerModeDate
  • UIDatePickerModeDateAndTime
  • UIDatePickerModeCountDownTimer
Choice-2


上述方法无法正常工作,请检查此链接

我建议您使用此链接:

这节省了我验证有效日期的时间

 let expiryDatePicker = MonthYearPickerView()

private func pickADate() {
    self.invitationTypeTemp = self.expiredDetailOutlet.text ?? "unknown error"

    //FORMAT DATE
   //        expiryDatePicker.datePickerMode = .date

    expiryDatePicker.backgroundColor = UIColor.white
    expiryDatePicker.setValue(UIColor.black, forKey: "textColor")
    expiryDatePicker.autoresizingMask = .flexibleWidth
    expiryDatePicker.contentMode = .center
    expiryDatePicker.frame = CGRect.init(x: 0.0, y: UIScreen.main.bounds.size.height - 300, width: UIScreen.main.bounds.size.width, height: 300)
    self.view.addSubview(expiryDatePicker)

    toolBar = UIToolbar.init(frame: CGRect.init(x: 0.0, y: UIScreen.main.bounds.size.height - 300, width: UIScreen.main.bounds.size.width, height: 50))
    toolBar.barStyle = .default
    toolBar.isTranslucent = true
    let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(onDoneButtonTappedDateExpired))
    let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
    let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: #selector(onCancelButtonTappedDateExpired))

    toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
    toolBar.isUserInteractionEnabled = true
    self.view.addSubview(toolBar)

    //DISABLE RIGHT ITEM & LEFT ITEM
   //        disableCancelAndSaveItems()

    //DISABLED SELECTION FOR ALL CELLS
   //        ableToSelectCellsAndButtons(isAble: false)

    //DISABLE RIGHT ITEM & LEFT ITEM
    isEnableCancelAndSaveItems(isEnabled: false)

    //SHOW GREY BACK GROUND
    showGreyOutView(isShow: true)
    expiryDatePicker.onDateSelected = { (month: Int, year: Int) in
        let string = String(format: "%02d/%d", month, year)
        self.expiredDetailOutlet.text = string
        NSLog(string) // should show something like 05/2015
    }
}

谢谢你的建议。:-)这可能适用于较小的应用程序,但对于在多个国家/地区工作的应用程序,这将是一个不好的选择,因为国家/地区使用的日历不同。感谢您的回复。:-)@ChetanPurohit——如果第一个选择没有希望,试试第二个选择,这对你非常有用谢谢你的建议Karthik。我会试试的。非常感谢你,伙计。这就是我要找的。我将使用第二个。@ChetanPurohit——如果我的答案是正确的,请投赞成票,这对未来很有用