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. centos安装docker容器

    centos安装docker容器 系统环境需求 docker要运行在centos7系统中,系统为64位机器上,内核最小版本在3.10以上 如果系统为centos6,后面有附带的安装方法 uname - ...

  2. 关于rem的使用和less编译工具考拉

    前提: 1.使用rem的前提是首先要设置好页面的根节点的大小: <script> (function(){ var html = document.documentElement; var ...

  3. 【转】JDBC连接数据库

    创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...

  4. 【Java基础】反射机制

    反射 反射可以使我们很方便的创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代码链接.反射允许我们在编写和执行时,使我们的代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类 ...

  5. 301、404、200、304、500HTTP状态

    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器超时 下面提供 HTTP 状态码的完整列表.点击链接可了解详情.您也可以访问 HTTP 状态码上的 ...

  6. MySQL索引的使用方式

    一,create CREATE INDEX可对表增加普通索引或UNIQUE索引. CREATE INDEX index_name ON table_name (column_list) CREATE ...

  7. ACM 组合数

    组合数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 找出从自然数1.2.... .n(0<n<10)中任取r(0<r<=n)个数的所有组合 ...

  8. java-信息安全(二)-对称加密算法DES,3DES,AES,Blowfish,RC2,RC4

    概述 信息安全基本概念: DES(Data Encryption Standard,数据加密标准) 3DES(Triple DES,三重数据加密算法(TDEA,Triple Data Encrypti ...

  9. 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富

    1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 498  Sol ...

  10. Python--校园网爬虫记

    查成绩,算分数,每年的综合测评都是个固定的过程,作为软件开发者,这些过程当然可以交给代码去做,通过脚本进行网络请求获取数据,然后直接进行计算得到基础分直接填表就好了,查成绩再手动计算既容易出错也繁琐, ...