Skip to content

AmirShayegh/DatePicker

Repository files navigation

DatePicker

Version License Platform

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
Alt Text Alt Text Alt Text
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

  1. Import the library
import UIKit
import DatePicker

class ViewController: UIViewController {
}
  1. 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")
    }
}

Alt Text

  1. Display
  • Screen Center:
datePicker.display(in: self)
  • Or as Popover (for iPads):
datePicker.displayPopOver(on: button, in: self)

Alt Text

Credit

Alt Text

License

DatePicker is available under the MIT license. See the LICENSE file for more info.