iOS学习之UIDatePicker控件使用(写这篇博客的博主博客不错,做个标记以后常来)

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

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

C代码   收藏代码
  1. NSDate* _date = [ [ NSDate alloc] initWithString:@"2012-03-07 00:35:00 -0500"];    
 

 

一、创建日期/时间选取器

 

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

C代码   收藏代码
  1. UIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0.0,0.0,0.0,0.0)];  
 

默认情况下选取会显示目前的日期和时间,并提供几个表盘,分别显示可以选择的月份和日期、小时、分钟、以及上午、下午。因此用户默认可以选择任何日期和时间的组合。

 

二、日期选取器模式

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

C代码   收藏代码
  1. datePicker.datePickerMode = UIDatePickerModeTime;   
 

支持的模式:

C代码   收藏代码
  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属性:

C代码   收藏代码
  1. datePicker.minuteInterval = 5;    
 

四、日期范围

 

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

C代码   收藏代码
  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属性:

C代码   收藏代码
  1. datePicker.date = minDate;    
 

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

C代码   收藏代码
  1. [datePicker setDate:maxDate animated:YES];  
 

五、显示日期选择器

C代码   收藏代码
  1. [self.view addSubview:datePicker];  
 

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

 

六、读取日期

C代码   收藏代码
  1. NSDate* _date = datePicker.date;   

 

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

C代码   收藏代码
  1. [datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged ];  
 

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

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

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


本文转载自:http://justcoding.iteye.com/blog/1473352

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 🍴常来小聚是一家位于广州的地道广州菜餐厅,菜品丰富多样,味道鲜美可口。无论是广州本地人还是外地游客,都能在这里品尝到地道的广州味道。👍推荐他们的蒜蓉粉丝蒸虾、清蒸鲈鱼、叉烧、沙茶牛肉等菜品,口感都十分绝佳,特别是蒜蓉粉丝蒸虾,一定要试一试!👌餐厅环境舒适,服务态度也非常好,价格实惠,性价比高。总之,常来小聚是一家非常不错的广州菜餐厅,值得常来品尝。👏 ### 回答2: 🍽️😋 嘿!来曼妙的广州小聚餐厅尝尝咱们广州美食的绝品!这儿最棒!贴心的服务人员持续给你以微笑及快捷的服务!菜单里有着各种各样的美食选项,🦐🐙 海鲜粥或新鲜🥟 害怕你会难以选择!味道令人着迷🤤由称为👨‍🍳 "创新粤菜"的料理师傅特制!可以享受到地道而又美味的广东美食,令人口感爆炸!当然了,这里的烤鸭令人惊艳 😍柔嫩多汁,令人难以阻挡!别错过设置精致或以传统木制为主题的环境,这里的不仅是口感之享受,而更是视觉盛宴!🍛 无论是家庭聚餐还是朋友相聚,这个地方都是大家的挚爱!🎉营业时间长,即使深夜,也能给你提供美食!🌃快来这儿享受吧!而且价格公道,💲 你可以在这里享受到品质优良的餐点,不费财力负担!所以,尽情享受这里令人难以忘怀的美味佳肴吧!你一定会😍爱上这个地方! ### 回答3: 🌟💯 常来小聚广州菜餐厅 🌟💯 🍜 在广州的美食璀璨之中,找到常来小聚广州菜餐厅,真是一个意外的发现!这个餐厅简直就是味蕾的狂欢!💃🎉 😋 首先,让我来介绍一下这里的美食。常来小聚广州菜餐厅的菜品无论是口感还是味道都超出我的预期!他们的炖品和煲仔饭简直是绝配,咸香香糯的米饭上面蓬松的肉类和鲜美的汤汁,简直让人无法抗拒!🍚🤤 🥢 除了煲仔饭,他们的广州菜也是一绝!他们烹饪的菜肴原汁原味,保留了广州菜的特色。无论是盐焗鸡还是蜜椒凤爪,每一口咬下去都能感受到鲜嫩多汁的肉质和香辣的味道,简直让我爱不释手!🔥🍗 😍 餐厅的装潢也非常漂亮,简约而又富有现代感。每个角落都打造得温馨舒适,让人陶醉其中。服务员们态度亲切周到,👨‍🍳👩‍🍳他们不仅推荐了一些太棒的菜品,还提供了迅速的服务,让我和我的朋友们感到宾至如归。 🌟 在常来小聚广州菜餐厅享受美食的体验是如此愉快,让我忍不住多次光顾。如果你在广州寻找正宗的广州菜,这里绝对是你的最佳选择!🌟 😄👍 总结一下,常来小聚广州菜餐厅是我最近发现的一个巨大惊喜!从菜品的美味程度到服务人员的专业态度,每一项都值得给予🌟🌟🌟🌟🌟的高分。如果你对广州菜有兴趣,赶快来这里一聚吧!满足你的味蕾,享受美食的狂欢!🥢🎉
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值