DatePicker
A DatePicker for iOS 10 and Above
- iPad and iPhone support (popover on ipad, card on iphone)
- Dark mode support
- Can personalize colours
- Easy to use
iPhone | iPad | In Action |
Installation
DatePicker is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'DatePicker', '~> 1.3.0'
Quick Usage
import DatePicker
class ViewController: UIViewController {
@IBAction func DateButton(_ sender: UIButton) {
let minDate = DatePickerHelper.shared.dateFrom(day: 18, month: 08, year: 1990)!
let maxDate = DatePickerHelper.shared.dateFrom(day: 18, month: 08, year: 2030)!
let today = Date()
// Create picker object
let datePicker = DatePicker()
// Setup
datePicker.setup(beginWith: today, min: minDate, max: maxDate) { (selected, date) in
if selected, let selectedDate = date {
print(selectedDate.string())
} else {
print("Cancelled")
}
}
// Display
datePicker.show(in: self, on: sender)
}
}
Detailed Usage
- Import the library
import UIKit
import DatePicker
class ViewController: UIViewController {
}
- Setup
here are multiple ways to configure DatePicker:
- Basic - Picker between today and 100 years from now
let datePicker = DatePicker()
datePicker.setup { (selected, date) in
if selected, let selectedDate = date {
print("\(selectedDate)"
} else {
print("cancelled")
}
}
Set initial selected by setting the beginWith
parameter:
datePicker.setup(beginWith: Date()) { (selected, date) in
if selected, let selectedDate = date {
print(selectedDate.string())
} else {
print("Cancelled")
}
}
Set initial selected by setting the beginWith
parameter:
datePicker.setup(beginWith: Date()) { (selected, date) in
if selected, let selectedDate = date {
print(selectedDate.string())
} else {
print("Cancelled")
}
}
- Picker with minimum and maximum dates
datePicker.setup(min: minDate, max: maxDate) { (selected, date) in
if selected, let selectedDate = date {
print("\(selectedDate)"
} else {
print("cancelled")
}
}
Set initial selected by setting the beginWith
parameter
datePicker.setup(beginWith: Date(), min: minDate, max: maxDate) { (selected, date) in
if selected, let selectedDate = date {
print("\(selectedDate)"
} else {
print("cancelled")
}
}
Set initial selected by setting the beginWith
parameter
datePicker.setup(beginWith: Date(), min: minDate, max: maxDate) { (selected, date) in
if selected, let selectedDate = date {
print("\(selectedDate)"
} else {
print("cancelled")
}
}
You can also use DatePickerHelper's functions to help generate dates:
let minDate = DatePickerHelper.shared.dateFrom(day: 18, month: 08, year: 1990)
let maxDate = DatePickerHelper.shared.dateFrom(day: 18, month: 08, year: 2020)
- Yearless Picker: select and return day and month integers independent of year.
let datePicker = DatePicker()
datePicker.setupYearless { (selected, month, day) in
if selected, let day = day, let month = month {
print("selected \(month) \(day)")
// You can also use DatePickerHelper's functions:
// DatePickerHelper.shared.month(number: Int) will return the month string name
print("selected DatePickerHelper.shared.month(number: month) \(day)")
} else {
print("cancelled")
}
}
- Display
- Screen Center:
datePicker.display(in: self)
- Or as Popover (for iPads):
datePicker.displayPopOver(on: button, in: self)
Credit
License
DatePicker is available under the MIT license. See the LICENSE file for more info.