This is a UIControl subclass that allows date selection using month and year, unlike UIDatePicker which displays year, month, and day. This makes MonthYearPicker useful for credit card expiry dates, for example. It is locale-aware and shows localised values. It also supports Dynamic Type and dark mode where available.
| Light | Dark |
|---|---|
![]() |
![]() |
Initialise MonthYearPicker in the same way you would a UIPickerView instance.
let picker = MonthYearPickerView(frame: CGRect(origin: CGPoint(x: 0, y: (view.bounds.height - 216) / 2), size: CGSize(width: view.bounds.width, height: 216)))
picker.minimumDate = Date()
picker.maximumDate = Calendar.current.date(byAdding: .year, value: 10, to: Date())
picker.addTarget(self, action: #selector(dateChanged(_:)), for: .valueChanged)
view.addSubview(picker)iOS 9.0 or later
MonthYearPicker is available through CocoaPods or Swift Package Manager.
Add the following line to your Podfile:
pod "MonthYearPicker", '~> 4.0.2'From within Xcode, select File → Swift Packages → Add Package Dependency... and enter https://github.com/alexanderedge/MonthYearPicker.git.
Alexander Edge, alex@alexedge.co.uk
MonthYearPicker is available under the MIT license. See the LICENSE file for more info.

