UIDatePicker的使用
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的使用的更多相关文章
- UI--UIPickerView和UIDatePicker的总结
回到顶部 UIPickerView的主要方法和城市选择器的修正 UIPickerView只有两个数据源方法.要想完整地显示出PickerView,需要结合使用代理方法 数据源方法: // 一共有多少组 ...
- iOs基础篇(二十二)—— UIPickerView、UIDatePicker控件的使用
一.UIPickerView UIPickerView是一个选择器控件,可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活. 1.常用属性 (1)num ...
- UIDatePicker和UIToolbar的使用
功能,用UIDatePicker 和UIToolbar 实现点击文本框弹出日期选择空间. 点击确定按钮获取时间显示到对应的Text Field里面,点击取消按钮隐藏键盘. 1.创建textField控 ...
- 自定义一个只显示年月的DatePicker(UIDatePicker无法实现年月显示)
HooDatePicker 介绍(introduction) ==================================================项目需要一个DatePicker,只显 ...
- iOS开发--UIDatePicker
UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样 ...
- IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)
***控制层 #import "ViewController.h" #import "CZKeyboardToolbar.h" @interface ViewC ...
- UIDatePicker 日期/时间选取器(滚轮)—IOS开发
UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样 ...
- UIDatePicker的用法
目录[-] 1.Locale 2.Calendar 3.timeZone 4.date 5.minimumDate 6.maximumDate 7.countDownDuration 8.minute ...
- UIkit框架之UIDatePicker
1.继承链:UIcontrol:UIview:UIResponder:NSOobject 2.和uidatepicker相关联的触发事件是 UIControlEventValueChanged,当使用 ...
- Objective-c——UI进阶开发第一天(UIPickerView和UIDatePicker)
一.知识点 1.介绍数据选择控件UIPickerView和日期选择控件UIDatePicker控件 * UIPickerView的案例 * 点餐系统 * 城市选择 * 国旗选择 * UIDatePic ...
随机推荐
- devexpress实现模仿Win8桌面metro风格
1.devexpress强大的控件库,可很容易的实现Win8桌面metro风格.使用的TileControl控件,拖动与Win效果相同.所有图片均来自网络资源.每个块也可实现如图所示的四种大小,如何实 ...
- 纪中集训 Day 7
今天超级不爽啊啊啊啊 尼玛我三道题都想出来了就是没对一道,第一题没理负数尼玛题目没告诉我,第二题尼玛题目也没说最近的点是第(l+r)/2而不是距离为(a[l]+a[r])/2啊啊啊啊,第三题没打GCD ...
- MySQL Innodb 并发涉及参数
1 参数作用 MySQL的各个插件式引擎中,都会对事务及线程做一定的处理和优化.在Innodb引擎中,总是尝试保持 innodb内 操作系统的线程数(暂命名为innodb_thread) 应该小于或等 ...
- 初探Lambda表达式/Java多核编程【4】Lambda变量捕获
这周开学,上了两天感觉课好多,学校现在还停水,宿舍网络也还没通,简直爆炸,感觉能静下心看书的时间越来越少了...寒假还有些看过书之后的存货,现在写一点发出来.加上假期两个月左右都过去了书才看了1/7都 ...
- 了解 : prevent default
基本了解是阻止事件之前设置好的事件触发,像是angular router ui里的 preventDefault是这样的. 在$stateChange的是后,可以调用preventDefault 来阻 ...
- C#的for循环使用方法
for循环是程序语言开发中常见的技法之一,这类循环可以执行指定的次数,并维护它自己的计数器,要定义for循环,需要下述信息:1.初始化计数器变量的一个起始值;2.继续循环的条件,它应涉及到计数器变量; ...
- mvc4中的过滤器
过滤器(Filter)把附加逻辑注入到MVC框架的请求处理.实现了交叉关注. 交叉关注:用于整个应用程序,又不适合放在某个局部位置的功能. 过滤器是.NET的注解属性(Attribute),它们对请求 ...
- Jquery之JSON的用法
今天讲了Jquery里面JSON的用法,下面是今天讲课给的例子: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" &quo ...
- linux文件系统详解
最近在做磁盘性能优化,需要结合文件系统原理去思考优化方向,因此借此机会进一步加深了对文件系统的认识.在看这篇文章之前,建议先看下前面一篇关于磁盘工作原理的解读.下面简单总结一些要点分享出来: 一.文件 ...
- File类和时间类的两道综合练习
练习1: 获取指定目录下(包含子目录)所有的某一种类型的文件 分析: 1.指定路径并获取其下的文件对象 2.要判断给定的目录是否为空 3.要判断给定路径下获取的目录是否为空 4.判断是否是某种文件 5 ...