UIDatePicker 日期选择器

前言

  • Objective-C

    1
    NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIDatePicker : UIControl <NSCoding>
  • Swift

    1
    @available(iOS 2.0, *) public class UIDatePicker : UIControl, NSCoding
  • UIDatePicker 是 UIKit 控件中提供日期和时间选择的控件。

1、DatePicker 的创建

  • Objective-C

    1
    2
    3
    4
    5
    // 不设置 frame 时为系统默认大小
    UIDatePicker *datePicker = [[UIDatePicker alloc] init];

    // 将 datePicker 添加到屏幕上
    [self.view addSubview:datePicker];
  • Swift

    1
    2
    3
    4
    5
    // 不设置 frame 时为系统默认大小
    let datePicker: UIDatePicker = UIDatePicker()

    // 将 datePicker 添加到屏幕上
    self.view.addSubview(datePicker)

2、DatePicker 的设置

  • Objective-C

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    // 设置 frame
    /*
    不设置 frame 时为系统默认大小
    */
    datePicker.frame = CGRectMake(50, 100, self.view.bounds.size.width - 100, 300);

    // 设置位置
    datePicker.center = self.view.center;

    // 设置显示模式
    /*
    UIDatePickerModeTime, // 仅显示时间,不显示日期
    UIDatePickerModeDate, // 仅显示日期,不显示时间
    UIDatePickerModeDateAndTime, // 同时显示日期和时间,默认
    UIDatePickerModeCountDownTimer, // 显示为倒计时状态
    */
    datePicker.datePickerMode = UIDatePickerModeDateAndTime;

    // 设置本地化信息
    /*
    default is [NSLocale currentLocale]. setting nil returns to default
    */
    datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

    // 设置时区
    /*
    default is nil. use current time zone or time zone from calendar
    */
    datePicker.timeZone = [NSTimeZone systemTimeZone];

    // 设置日历
    /*
    default is [NSCalendar currentCalendar]. setting nil returns to default
    */
    datePicker.calendar = [NSCalendar currentCalendar];

    // 设置时间
    /*
    default is current date when picker created.
    */
    datePicker.date = [NSDate date];
    [datePicker setDate:[NSDate dateWithTimeIntervalSinceNow:60*60*26] animated:YES];

    // 设置最小的时间
    /*
    default is nil
    */
    datePicker.minimumDate = [NSDate dateWithTimeIntervalSince1970:0];

    // 设置最大时间
    /*
    default is nil
    */
    datePicker.maximumDate = [NSDate dateWithTimeIntervalSinceNow:60*60*24*7];

    // 设置可以调整的最小时间间隔(分钟)
    /*
    interval must be evenly divided into 60. default is 1. min is 1, max is 30
    */
    datePicker.minuteInterval = 2;

    // 设置倒计时时间值(秒)
    /*
    default is 0.0. limit is 23:59 (86,399 seconds)。必须为 60 的整数倍,比如设置为 100,值自动变为 60
    */
    datePicker.countDownDuration = 60*60;

    // 添加点击触发事件
    [datePicker addTarget:self action:@selector(datePickerChanged:) forControlEvents:UIControlEventValueChanged];
  • Swift

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    // 设置 frame
    /*
    不设置 frame 时为系统默认大小
    */
    datePicker.frame = CGRectMake(50, 100, self.view.bounds.size.width - 100, 300)

    // 设置位置
    datePicker.center = self.view.center

    // 设置显示模式
    /*
    case Time // 仅显示时间,不显示日期
    case Date // 仅显示日期,不显示时间
    case DateAndTime // 同时显示日期和时间,默认
    case CountDownTimer // 显示为倒计时状态
    */
    datePicker.datePickerMode = .DateAndTime

    // 设置本地化信息
    /*
    default is [NSLocale currentLocale]. setting nil returns to default
    */
    datePicker.locale = NSLocale(localeIdentifier: "en_US")

    // 设置时区
    /*
    default is nil. use current time zone or time zone from calendar
    */
    datePicker.timeZone = NSTimeZone.systemTimeZone()

    // 设置日历
    /*
    default is [NSCalendar currentCalendar]. setting nil returns to default
    */
    datePicker.calendar = NSCalendar.currentCalendar()

    // 设置时间
    /*
    default is current date when picker created
    */
    datePicker.date = NSDate()
    datePicker.setDate(NSDate(timeIntervalSinceNow: 60*60*26), animated: true)

    // 设置最小的时间
    /*
    default is nil
    */
    datePicker.minimumDate = NSDate(timeIntervalSince1970: 0)

    // 设置最大时间
    /*
    default is nil
    */
    datePicker.maximumDate = NSDate(timeIntervalSinceNow: 60*60*24*7)

    // 设置可以调整的最小时间间隔(分钟)
    /*
    interval must be evenly divided into 60. default is 1. min is 1, max is 30
    */
    datePicker.minuteInterval = 2

    // 设置倒计时时间值(秒)
    /*
    default is 0.0. limit is 23:59 (86,399 seconds)。必须为 60 的整数倍,比如设置为 100,值自动变为 60
    */
    datePicker.countDownDuration = 60*60

    // 添加点击触发事件
    datePicker.addTarget(self, action: #selector(UiDatePicker.datePickerChanged(_:)), forControlEvents: .ValueChanged)
文章目录
  1. 1. 前言
  2. 2. 1、DatePicker 的创建
  3. 3. 2、DatePicker 的设置
隐藏目录