UIDatePicker的介绍

UIDatePicker这个类的对象让用户可以在多个车轮上选择日期和时间。iPhone手机上的‘时钟’应用程序中的时间与闹铃中便使用了该控件。使用这个控件时,如果你能配置正确,当用户滚动车轮到一个新的日期或者时间上时,利用UIControlEventValueChanged触发事件。UIDatePicker给出了倒计时模式,但是并没有实现相关事件。如果你使用该模式,必须在应用程序中设置一个NSTime对象,让倒计时中的时间不断减少。

UIDatePicker的使用

创建并添加一个UIDatePicker对象

UIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0,0,320,216)];
[self.view addSubview: datePicker];

配置UIDatePicker对象

1.日历属性

@property(nonatomic, copy) NSCalendar *calendar

相关说明:1.此属性的默认值对应于用户的当前日历,是在‘设置’这个应用程序中去设置的。

2.访问这个属性相当于调用 NSCalendar类的currentCalendar方法后时返回的值。

3.设置这个属性的值为nil,相当于使用它的默认值。

4.calendar属性指明了用于计算时间的文化细节,它指明了一年的开始和长度,一年中如何划分的方式。

2.日期属性

@property(nonatomic, strong) NSDate *date

相关说明:1.该属性的默认值是UIDatePicker对象创建时的日期。

2.该属性会在UIDatePickerModeCountDownTimer日期模式下被忽略;在该模型中,日期选择器开始于0:00。

3.设置该属性可以让时间选择器旋转到这个设置的日期与时间,但是不会产生动画效果。

4.如果要产生动画效果,需要使用 setDate:animated: 方法。

3.本地化属性

@property(nonatomic, strong) NSLocale *locale

相关说明:1.默认值是NSLocale类的currentLocale属性返回的值,或者是是时间选择器的日历所使用的本地化值。

2.本地化属性封装了关于语言和文化的层面,如日期的格式信息方式。

3.如果设备的‘设置’应用程序中地区选择“中国”时,NSLog(@"%@",[NSLocale currentLocale].localeIdentifier);返回的是@“zh_CN”。

4.在满足3的前提下,设置_datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];是多余的。

4.设置时间的方法

- (void)setDate:(NSDate *)date
       animated:(BOOL)animated

相关说明:该方法用来设置一个新的时间并以动画的形式展示在时间选择器上面。(animated值为YES时,有动画)

5.时区属性

@property(nonatomic, strong) NSTimeZone *timeZone

相关说明:默认值是nil,意味着它利用的是NSTimeZone类的localTimeZone(本地时区)作为当前时区,或者是利用时间选择器的日历所使用的时区作为当前时区。

6.时间选择器的模式

@property(nonatomic) UIDatePickerMode datePickerMode

相关说明:1.这个属性指明以哪一种方式展示,只有时间、只有日期、既有日期又有时间、倒计时,这四种模式中的一种。

2.默认的模式为UIDatePickerModeDateAndTime(既有日期又有时间)。

3.UIDatePickerModeTime、UIDatePickerModeDate、UIDatePickerModeDateAndTime、UIDatePickerModeCountDownTimer。

7.最大显示时间属性

@property(nonatomic, strong) NSDate *maximumDate

相关说明:1.该属性值为NSDate对象,默认值是nil,nil意味着没有最大显示时间的约束。

2.该属性与最小显示时间属性(minimumDate)结合,表示一个有效的时间范围。

3.如果最小显示时间大于最大显示时间时,这两种性质都被忽略。

4.在倒计时模式(UIDatePickerModeCountDownTimer)下,最小显示时间和最大显示时间这两个属性都会被忽略。

8.最小显示时间属性

@property(nonatomic, strong) NSDate *minimumDate

相关说明:1.该属性值为NSDate对象,默认值是nil,nil意味着没有最小显示时间的约束。

2.该属性与最大显示时间属性(maximumDate)结合,表示一个有效的时间范围。

3.如果最小显示时间大于最大显示时间时,这两种性质都被忽略。

4.在倒计时模式(UIDatePickerModeCountDownTimer)下,最小显示时间和最大显示时间这两个属性都会被忽略。

9.间隔时间属性

@property(nonatomic) NSInteger minuteInterval

相关说明:1.使用该属性设置由分钟车轮显示的时间间隔。

2.间隔值必须均匀地分隔60,如果没有这样做,该属性将使用默认值为1。

3.该属性值的范围是大于等于1,并小于等于30。

10.倒计时秒数属性

@property(nonatomic) NSTimeInterval countDownDuration

相关说明:1.该属性设置倒计时需要倒计的秒数。

2.如果时间选择器的时间模式不是倒计时模式,则该属性会被忽略。

3.默认值是0.0,最大值为23:59(86399秒)。

获得时间数据

主动获取

直接通过访问时间选择器对象_datePicker的date属性获得NSDate类型的时间数据:

NSDate *theDate = _datePicker.date;//该属性返回选中的时间
NSLog(@"%@",[theDate descriptionWithLocale:[NSLocale currentLocale]]);//返回基于本地化的时间信息,其中NSLocale的静态方法currentLocale返回当前的NSLocale对象

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];//返回一个日期格式对象
dateFormatter.dateFormat = @"YYYY-MM-dd HH-mm-ss";//该属性用于设置日期格式为YYYY-MM-dd HH-mm-ss
NSLog(@"%@",[dateFormatter stringFromDate:theDate]);//该方法用于从日期对象返回日期字符串

监听获取

由于日期选择器是 UIControl的子类,因此可以可以监听它的行为(UIControlEventValueChanged):

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

- (void)dateChanged
{
    NSDate *theDate = _datePicker.date;
    NSLog(@"%@",[theDate descriptionWithLocale:[NSLocale currentLocale]]);
    
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"YYYY-MM-dd HH-mm-ss";
    NSLog(@"%@",[dateFormatter stringFromDate:theDate]);
}

相关介绍

四种时间模式的介绍

1.UIDatePickerModeTime

在这种模式下,显示时、分、AM/PM标志(可选)。具体的显示顺序取决于设备的本地化设置。

2.UIDatePickerModeDate

在这种模式下,显示年、月、日。具体的显示顺序取决于设备的本地化设置。

3.UIDatePickerModeDateAndTime

在这种模式下,显示日期的月、日、星期,时间的时、分、AM/PM标志(可选)。具体的显示顺序取决于设备的本地化设置。

4.UIDatePickerModeCountDownTimer

在这种模式下,显示时、分。应用程序必须实现一个计数器(NSTimer对象),让倒计时中的时间不断减少。

UIDatePicker的使用的更多相关文章

  1. UI--UIPickerView和UIDatePicker的总结

    回到顶部 UIPickerView的主要方法和城市选择器的修正 UIPickerView只有两个数据源方法.要想完整地显示出PickerView,需要结合使用代理方法 数据源方法: // 一共有多少组 ...

  2. iOs基础篇(二十二)—— UIPickerView、UIDatePicker控件的使用

    一.UIPickerView UIPickerView是一个选择器控件,可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活. 1.常用属性 (1)num ...

  3. UIDatePicker和UIToolbar的使用

    功能,用UIDatePicker 和UIToolbar 实现点击文本框弹出日期选择空间. 点击确定按钮获取时间显示到对应的Text Field里面,点击取消按钮隐藏键盘. 1.创建textField控 ...

  4. 自定义一个只显示年月的DatePicker(UIDatePicker无法实现年月显示)

    HooDatePicker 介绍(introduction) ==================================================项目需要一个DatePicker,只显 ...

  5. iOS开发--UIDatePicker

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

  6. IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)

    ***控制层 #import "ViewController.h" #import "CZKeyboardToolbar.h" @interface ViewC ...

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

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

  8. UIDatePicker的用法

    目录[-] 1.Locale 2.Calendar 3.timeZone 4.date 5.minimumDate 6.maximumDate 7.countDownDuration 8.minute ...

  9. UIkit框架之UIDatePicker

    1.继承链:UIcontrol:UIview:UIResponder:NSOobject 2.和uidatepicker相关联的触发事件是 UIControlEventValueChanged,当使用 ...

  10. Objective-c——UI进阶开发第一天(UIPickerView和UIDatePicker)

    一.知识点 1.介绍数据选择控件UIPickerView和日期选择控件UIDatePicker控件 * UIPickerView的案例 * 点餐系统 * 城市选择 * 国旗选择 * UIDatePic ...

随机推荐

  1. 新注册第一帖----------------------乱码新手自学.net 之Linq 入门篇

    作为一个业余开发,断断续续学.net/c#也有不少日子了, 学习过程中,不断忘了学,学了忘,这让我很苦恼. 以前学习过程中,我总是在笔记本中记录下来知识要点,这么久下来,笔记本都写了四五本了. 然而, ...

  2. java集合框架05——ArrayList和LinkedList的区别

    前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图 ...

  3. Qt入门之基础篇(三):掌握Qt4的静态编译基本方法

    转载载请注明出处:CN_Simo. 导语: 前两章都提到过“静态编译”(Static Compilation),在Windows下一次静态编译差不多需要长达三个小时才能完成,而且还非常容易由于各种原因 ...

  4. scss 学习笔记

    由于没有办法在网络上找到适合顾客的模板,同时之前自己写css也没有很好的管理方式,最终选择了scss. Nested #main p { color: #00ff00; width: 97%; .re ...

  5. Linux 搭建Zookeeper集群

    1.使用root创建zookeeper用户:     useradd zookeeper:     passwd  zookeeper; 2.登录zookeeper用户,将下载的zookeeper-3 ...

  6. Web纯前端“旭日图”实现元素周期表

    一.什么是旭日图 旭日图是在Excel 2016中新增的一种图表.有些类似饼图,饼图的优势是可以显示占比.但是饼图只能显示单级数据.旭日图用来表示多层级数据的占比.旭日图以一种分层方式显示,非常适合用 ...

  7. 2429: [HAOI2006]聪明的猴子

    2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 448  Solved: 309[Submit][Statu ...

  8. ES4:ElasticSearch 使用C#添加和更新文档

    这是ElasticSearch 2.4 版本系列的第四篇: 第一篇:ES1:Windows下安装ElasticSearch 第二篇:ES2:ElasticSearch 集群配置 第三篇:ES3:Ela ...

  9. react router路径的匹配原则

    路由匹配规则是从上到下执行,一旦发现匹配,就不再其余的规则了. (1):paramName :paramName匹配URL的一个部分,直到遇到下一个/.?.#为止.这个路径参数可以通过this.pro ...

  10. 使用python landport库快速实现排行榜

    背景介绍 排行榜业务使用的频率实在太高了,各种活动都会使用排行榜.经过多次开发后我觉得实现一个简单的排行榜库,它能够完成当前我遇到的所有业务逻辑问题,也希望能够帮助到想要快速开发排行榜业务的同行. 我 ...