UIDatePicker 日期滚轮)/时间选取器

原创 2015年11月20日 20:54:02


UIDatePicker 是一个控制器类,它封装了 UIPickerView,它是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。

UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面系统。本文中仅需用到 initWithString 来创建NSDate 所以NSDate 留待专题讲解,你只需要掌握本文中使用的方法就好。

  1. NSDate* _date = [ [ NSDate alloc] initWithString:@"2012-03-07 00:35:00 -0500"];    
  
一、创建日期/时间选取器

UIDatePicker 使用起来比标准 UIPickerView 更简单。他会根据你指定的日期范围创建自己的数据源。使用它只需要创建一个对象:

  1. UIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0.0,0.0,0.0,0.0)]; 
 
默认情况下选取会显示目前的日期和时间,并提供几个表盘,分别显示可以选择的月份和日期、小时、分钟、以及上午、下午。因此用户默认可以选择任何日期和时间的组合。

二、日期选取器模式

日期/时间选取器支持4种不同模式的选择方式。通过设置 datePickerMode 属性,可以定义选择模式:

  1. datePicker.datePickerMode = UIDatePickerModeTime;   
 
支持的模式:

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

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

  1. datePicker.minuteInterval = 5;    

四、日期范围

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

  1. NSDate* minDate = [[NSDate alloc]initWithString:@"1900-01-01 00:00:00 -0500"];    
  2. NSDate* maxDate = [[NSDate alloc]initWithString:@"2099-01-01 00:00:00 -0500"];    
  3.         
  4. datePicker.minimumDate = minDate;    
  5. datePicker.maximumDate = maxDate;   
 
如果两个日期范围属性中任何一个未被设置,则默认行为将会允许用户选择过去或未来的任意日期。这在某些情况下很有用处,比如,当选择生日时,可以是过去的任意日期,但终止于当前日期。如果你希望设置默认显示的日期,可以使用date属性:

  1. datePicker.date = minDate;    
 
此外,你还可以用 setDate 方法。如果选择了使用动画,则表盘会滚动到你指定的日期:

  1. [datePicker setDate:maxDate animated:YES];  
 
五、显示日期选择器

  1. [self.view addSubview:datePicker];  
 
需要注意的是,选取器的高度始终是216像素,要确定分配了足够的空间来容纳。

六、读取日期

  1. NSDate* _date = datePicker.date;   

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

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

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

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

UIDatePicker 是一个控制器类,它封装了 UIPickerView,它是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。

UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面系统。本文中仅需用到 initWithString 来创建NSDate 所以NSDate 留待专题讲解,你只需要掌握本文中使用的方法就好。

  1. NSDate* _date = [ [ NSDate alloc] initWithString:@"2012-03-07 00:35:00 -0500"];    
  
一、创建日期/时间选取器

UIDatePicker 使用起来比标准 UIPickerView 更简单。他会根据你指定的日期范围创建自己的数据源。使用它只需要创建一个对象:

  1. UIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0.0,0.0,0.0,0.0)]; 
 
默认情况下选取会显示目前的日期和时间,并提供几个表盘,分别显示可以选择的月份和日期、小时、分钟、以及上午、下午。因此用户默认可以选择任何日期和时间的组合。

二、日期选取器模式

日期/时间选取器支持4种不同模式的选择方式。通过设置 datePickerMode 属性,可以定义选择模式:

  1. datePicker.datePickerMode = UIDatePickerModeTime;   
 
支持的模式:

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

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

  1. datePicker.minuteInterval = 5;    

四、日期范围

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

  1. NSDate* minDate = [[NSDate alloc]initWithString:@"1900-01-01 00:00:00 -0500"];    
  2. NSDate* maxDate = [[NSDate alloc]initWithString:@"2099-01-01 00:00:00 -0500"];    
  3.         
  4. datePicker.minimumDate = minDate;    
  5. datePicker.maximumDate = maxDate;   
 
如果两个日期范围属性中任何一个未被设置,则默认行为将会允许用户选择过去或未来的任意日期。这在某些情况下很有用处,比如,当选择生日时,可以是过去的任意日期,但终止于当前日期。如果你希望设置默认显示的日期,可以使用date属性:

  1. datePicker.date = minDate;    
 
此外,你还可以用 setDate 方法。如果选择了使用动画,则表盘会滚动到你指定的日期:

  1. [datePicker setDate:maxDate animated:YES];  
 
五、显示日期选择器

  1. [self.view addSubview:datePicker];  
 
需要注意的是,选取器的高度始终是216像素,要确定分配了足够的空间来容纳。

六、读取日期

  1. NSDate* _date = datePicker.date;   

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

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

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

  1. -(void)dateChanged:(id)sender{    
  2.           UIDatepicker* control = (UIDatePicker*)sender;    
  3. NSDate* _date = control.date;    
  4. /*添加你自己响应代码*/    
  5. }    
 
版权声明:VIC

滚轴选择器(可选日期、自定义的String)

  • 2014年07月25日 09:11
  • 326KB
  • 下载

手把手教你写Js日期时间选择器(3)-让控件滑动起来

本节为大家讲解怎么让控件滑动起来,这里需要用到一个第三方库IScroll.js.先奉上链接地址:IScroll githubIScroll 网站IScroll介绍IScroll是一个高性能,体积小,无...
  • u012963788
  • u012963788
  • 2016年08月13日 09:21
  • 4412

仿Iphone的轮子时间选择器(wheel picker)

因为项目中,要要使用这个功能,就抽离出这部分。 activity: @Override public void onCreate(Bundle savedInstanceState) { su...
  • yueqinglkong
  • yueqinglkong
  • 2013年12月09日 19:23
  • 19026

android滚轮时间选择器

  • 2015年08月14日 16:34
  • 244KB
  • 下载

仿Iphone的时间滑轮选择器

  • 2012年04月28日 10:26
  • 105KB
  • 下载

UIDatePicker 日期/时间选取器(滚轮)—IOS开发

UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样...
  • u012980997
  • u012980997
  • 2014年02月08日 11:39
  • 863

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

from: http://blog.csdn.net/iukey/article/details/7327164 选取器被用来取代PC上面的下拉菜单,它是一个大大的滚轮,它占用固定的...
  • wangyx810328
  • wangyx810328
  • 2012年05月10日 10:23
  • 1824

使Android原生时间选择器样式为滚轮

很简单,修改styles.xml代码     style name="AppBaseTheme" parent="android:Theme.Light">         ...
  • getchance
  • getchance
  • 2014年12月22日 11:06
  • 11523

滑轮选择,WheelView的简单使用

WheelView 的 简单使用,即调整布局介绍
  • Avalon_nongzai
  • Avalon_nongzai
  • 2015年08月04日 17:17
  • 1083

UIDatePicker 日期、时间选取器

欢迎转载,但是请尊重作者劳动成果,转载请保留此框内声明,谢谢。 文章出处:http://blog.csdn.net/iukey UIDatePicker 是一个控制器类,封装了 UIPic...
  • Leeyehong_self
  • Leeyehong_self
  • 2012年09月06日 16:52
  • 982
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UIDatePicker 日期滚轮)/时间选取器
举报原因:
原因补充:

(最多只允许输入30个字)