iOSUIDatePicker

Remarks

UIDatePicker does not inherit from UIPickerView, but it manages a custom picker-view object as a subview.

Create a Date Picker

Swift

let datePicker = UIDatePicker(frame: CGRect(x: 0, y: 0, width: 320, height: 200)       

Objective-C

UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(x: 0, y: 0, width: 320, height: 200)];

Setting Minimum-Maximum Date

You can set the minimum and the maximum date that UIDatePicker can show.

Minimum date

[datePicker setMinimumDate:[NSDate date]];

Maximum date

[datePicker setMaximumDate:[NSDate date]];

Modes

UIDatePicker has various picker modes.

enum UIDatePickerMode : Int {
    case Time
    case Date
    case DateAndTime
    case CountDownTimer
} 
  • Time - The date picker displays hours, minutes, and (optionally) an AM/PM designation.
  • Date - The date picker displays months, days of the month, and years.
  • DateAndTime - The date picker displays dates (as unified day of the week, month, and day of the month values) plus hours, minutes, and (optionally) an AM/PM designation.
  • CountDownTimer - The date picker displays hour and minute values, for example [ 1 | 53 ]. The application must set a timer to fire at the proper interval and set the date picker as the seconds tick down.

Setting property datePickerMode

let datePicker = UIDatePicker(frame: CGRect(x: 0, y: 0, width: 320, height: 200)  
datePicker.datePickerMode = .Date

Setting minute interval

You can change property minuteInterval to set the interval displayed by the minutes wheel. The default value is 1, the maximum value is 30.

let datePicker = UIDatePicker(frame: CGRect(x: 0, y: 0, width: 320, height: 200)  
datePicker.minuteInterval = 15

Count Down Duration

The NSTimeInterval value of this property indicates the seconds from which the date picker in countdown-timer mode counts down. If the mode of the date picker is not CountDownTimer, this value is ignored. Maximum value is 86,399 seconds (23:59)

let datePicker = UIDatePicker(frame: CGRect(x: 0, y: 0, width: 320, height: 200)  
datePicker.countDownDuration = 60 * 60