• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

iphone UIDatePicker 日期、时间选取器(滚轮)

OC/C/C++ 水墨上仙 2346次浏览

UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。
UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面系统。本文中仅需用到 initWithString 来创建NSDate 所以NSDate 留待专题讲解,你只需要掌握本文中使用的方法就好。

NSDate* _date = [ [ NSDate alloc] initWithString:@"2012-03-07 00:35:00 -0500"];    
  

一、创建日期/时间选取器
&nbsp&nbsp
UIDatePicker&nbsp使用起来比标准&nbspUIPickerView&nbsp更简单。他会根据你指定的日期范围创建自己的数据源。使用它只需要创建一个对象:
&nbsp&nbsp

UIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0.0,0.0,0.0,0.0)];   

默认情况下选取会显示目前的日期和时间,并提供几个表盘,分别显示可以选择的月份和日期、小时、分钟、以及上午、下午。因此用户默认可以选择任何日期和时间的组合。
&nbsp&nbsp
二、日期选取器模式
日期/时间选取器支持4种不同模式的选择方式。通过设置&nbspdatePickerMode&nbsp属性,可以定义选择模式:

  
datePicker.datePickerMode = UIDatePickerModeTime;    

支持的模式:

typedef enum {    
    UIDatePickerModeTime,           // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)    
    UIDatePickerModeDate,           // Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)    
    UIDatePickerModeDateAndTime,    // Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. Wed Nov 15 | 6 | 53 | PM)    
    UIDatePickerModeCountDownTimer  // Displays hour and minute (e.g. 1 | 53)    
} UIDatePickerMode;    

三、时间间隔
&nbsp&nbsp
你可以将分钟表盘设置为以不同的时间间隔来显示分钟,前提是该间隔要能够让60整除。默认间隔是一分钟。如果要使用不同的间隔,需要改变&nbspminuteInterval属性:

datePicker.minuteInterval = 5;   

四、日期范围
&nbsp&nbsp
你可以通过设置mininumDate&nbsp和&nbspmaxinumDate&nbsp属性,来指定使用的日期范围。如果用户试图滚动到超出这一范围的日期,表盘会回滚到最近的有效日期。两个方法都需要NSDate&nbsp对象作参数:
&nbsp&nbsp

NSDate* minDate = [[NSDate alloc]initWithString:@"1900-01-01 00:00:00 -0500"];    
    NSDate* maxDate = [[NSDate alloc]initWithString:@"2099-01-01 00:00:00 -0500"];    
         
    datePicker.minimumDate = minDate;    
    datePicker.maximumDate = maxDate;   

如果两个日期范围属性中任何一个未被设置,则默认行为将会允许用户选择过去或未来的任意日期。这在某些情况下很有用处,比如,当选择生日时,可以是过去的任意日期,但终止与当前日期。如果你希望设置默认显示的日期,可以使用date属性:

datePicker.date = minDate;    

此外,你还可以用&nbspsetDate&nbsp方法。如果选择了使用动画,则表盘会滚动到你指定的日期:

[ datePicker setDate:maxDate animated:YES];   

五、显示日期选择器

[ self.view addSubview:datePicker];   

需要注意的是,选取器的高度始终是216像素,要确定分配了足够的空间来容纳。

六、读取日期

NSDate* _date = datePicker.date;    

由于日期选择器是&nbspUIControl的子类&nbsp(与UIPickerView不同),你还可以在UIControl类的通知结构中挂接一个委托:

[ datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged ];   

只要用户选择了一个新日期,你的动作类就会被调用:

  
-(void)dateChanged:(id)sender{    
          UIDatepicker* control = (UIDatePicker*)sender;    
NSDate* _date = control.date;    
/*添加你自己响应代码*/   
}    

是不是觉得很好玩呢?确实。如果觉得好玩,你也试着封装一个UIPickerView&nbsp试试看,打造一个你自己的专用滚轮。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明iphone UIDatePicker 日期、时间选取器(滚轮)
喜欢 (0)
加载中……