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 ...
随机推荐
- TCP和UDP的"保护消息边界”
转自:http://blog.csdn.net/zhangxinrun/article/details/6721427 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的.因此TCP ...
- 前端项目经验总结之js防缓存(避免缓存的影响)
一.问题描述:打包后的h5项目中有个server.js文件夹,这个文件夹有些时候用户更新了h5,但是加载的还是旧的server.js,所以怀疑是缓存的问题,为了避免缓存的影响所以要给server.js ...
- 过程 : 系统语言和jobPost 语言版本
在前台,用户选择语言会是checkbox list,可以选择多个.如果英文是主要语言,那么 ·选择英文而已,jobPosts 只显示英文版本 ·如果jobPost有英文和中文,只显示英文 ·如果job ...
- web前端的发展态势 浅识
以前 作为一个java程序员写的代码主要还是后台的代码,虽然开始的时候前后端都写,但是也是用别人造好的轮子来用,学学html,css,js,jquery,再找一个前端ui框架学学,上手之后我们就可以写 ...
- 【java基础之jdk源码】集合类
最近在整理JAVA 基础知识,从jdk源码入手,今天就jdk中 java.util包下集合类进行理解 先看图 从类图结构可以了解 java.util包下的2个大类: 1.Collecton:可以理解为 ...
- Hibernate框架单向多对一关联映射关系
建立多对一的单向关联关系 Emp.java private Integer empNo //员工编号 private String empName / ...
- bash之管线命令
命令的输出需要经过好几道手续才能得到我们想要的格式,需要用到管线(pipe),(|) 管线命令(|)仅能处理stdandard output,对stdandard error output会忽略 管线 ...
- RunTime.getRuntime().exec()运行脚本命令介绍和阻塞
java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行.在java中,RunTime.getRuntime().exec()就实现了这个功能. ...
- 【SysML】模块定义图(BDD, Block Definition Diagram)
一.引言 SysML中的模块定义图,英文为 “Block Definition Diagram”,简称BDD,是系统建模过程中最为常见的图之一,BDD是一种结构图,它主要对系统的结构组成以及组成元素间 ...
- Scrapy 初体验
开发笔记 Scrapy 初体验 scrapy startproject project_name 创建工程 scrapy genspider -t basic spider_name website. ...