UIDatePicker 使用详解

1.UIDatePicker 继承自UIControl,是一个事件驱动型控件,内部通过封装 UIPickerView实现,相当于日期时间选择操作的UIPickerView。共有四种显示模式,如下

typedef NS_ENUM(NSInteger, UIDatePickerMode) {
    UIDatePickerModeTime,           // <span style="font-family:Arial;">显示小时和分钟,上午下午</span>
    UIDatePickerModeDate,           // <span style="font-family:Arial;">显示日期,月,日,年。</span>
    UIDatePickerModeDateAndTime,    // <span style="font-family:Arial;">显示全部,包括星期,月日年,时间,上午下午</span>
    UIDatePickerModeCountDownTimer, // <span style="font-family:Arial;">显示小时和分钟</span>
};


2.UIDatePicker的高时固定的,不可以修改UIDatePicker 需要搭配 NSDate 类来使用,来配置UIDatePicker中一些参数,以下是范例


UIDatUIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0.0,0.0,100,100)];
    datePicker.datePickerMode = UIDatePickerModeTime;
    datePicker.minuteInterval = 10;             // 时间间隔,表示分钟是按照10的倍数显示。此处必须是60得约数,默认为1分钟
    
    NSDate *maxDate = [datePicker date];        // 获取当前时间作为最大显示时间
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
    NSDate *minDate = [dateFormatter dateFromString:@"1991-07-07 11:11"];   // 显示最小日期时间
    
    datePicker.minimumDate = minDate;       // picker中最小时间
    datePicker.maximumDate = maxDate;       // 最大时间,也就是当前时间,一般用来选择生日或者别的,
//此处若不设置则显示的时过去的某个时间和将来的某个时间
<span><span>    datePicker.date = minDate;</span></span>  // 此处设置默认显示的时间
    [self.view addSubview:datePicker];      // 添加到当前视图控制器
    
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];//设置为中文 默认为英文
    datePicker.locale = locale;             // 设置是显示当前语言


3.获取当前选中的日期信息,另外也可以在选中日期的时候触发事件,如下例,当选中的日期与之前默认日期不一样时,就会触发dateChanged方法

NSDate* <span style="font-family:Arial;">currD</span>ate = datePicker.date;
[datePicker addTarget:self action:@selector(dateChanged) 
<span style="font-family:Arial;">                              </span>forControlEvents:UIControlEventValueChanged];  <span style="font-family:Arial;">//事件类型</span>

4.UIDatePicker的事件类型,都是很直观的的单词,很容易理解。

typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
    UIControlEventTouchDown           = 1 <<  0,      // on all touch downs
    UIControlEventTouchDownRepeat     = 1 <<  1,      // on multiple touchdowns (tap count > 1)
    UIControlEventTouchDragInside     = 1 <<  2,
    UIControlEventTouchDragOutside    = 1 <<  3,
    UIControlEventTouchDragEnter      = 1 <<  4,
    UIControlEventTouchDragExit       = 1 <<  5,
    UIControlEventTouchUpInside       = 1 <<  6,
    UIControlEventTouchUpOutside      = 1 <<  7,
    UIControlEventTouchCancel         = 1 <<  8,

    UIControlEventValueChanged        = 1 << 12,     // sliders, etc.

    UIControlEventEditingDidBegin     = 1 << 16,     // UITextField
    UIControlEventEditingChanged      = 1 << 17,
    UIControlEventEditingDidEnd       = 1 << 18,
    UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing

    UIControlEventAllTouchEvents      = 0x00000FFF,  // for touch events
    UIControlEventAllEditingEvents    = 0x000F0000,  // for UITextField
    UIControlEventApplicationReserved = 0x0F000000,  // range available for application use
    UIControlEventSystemReserved      = 0xF0000000,  // range reserved for internal framework use
    UIControlEventAllEvents           = 0xFFFFFFFF
};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值