UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。
UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面系统。本文中仅需用到 initWithString 来创建NSDate 所以NSDate 留待专题讲解,你只需要掌握本文中使用的方法就好。
NSDate* _date = [ [ NSDate alloc] initWithString:@"2012-03-07 00:35:00 -0500"];
一、创建日期/时间选取器
UIDatePicker 使用起来比标准 UIPickerView 更简单。他会根据你指定的日期范围创建自己的数据源。使用它只需要创建一个对象:
UIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0.0,0.0,0.0,0.0)];
默认情况下选取会显示目前的日期和时间,并提供几个表盘,分别显示可以选择的月份和日期、小时、分钟、以及上午、下午。因此用户默认可以选择任何日期和时间的组合。
二、日期选取器模式
日期/时间选取器支持4种不同模式的选择方式。通过设置 datePickerMode 属性,可以定义选择模式:
datePicker.datePickerMode = UIDatePickerModeTime;
支持的模式:
typedef enum {
UIDatePickerModeTime, // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)
UIDatePickerModeDate, // Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)
UIDatePickerModeDateAndTime, // Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. Wed Nov 15 | 6 | 53 | PM)
UIDatePickerModeCountDownTimer // Displays hour and minute (e.g. 1 | 53)
} UIDatePickerMode;
三、时间间隔
你可以将分钟表盘设置为以不同的时间间隔来显示分钟,前提是该间隔要能够让60整除。默认间隔是一分钟。如果要使用不同的间隔,需要改变 minuteInterval属性:
datePicker.minuteInterval = 5;
四、日期范围
你可以通过设置mininumDate 和 maxinumDate 属性,来指定使用的日期范围。如果用户试图滚动到超出这一范围的日期,表盘会回滚到最近的有效日期。两个方法都需要NSDate 对象作参数:
NSDate* minDate = [[NSDate alloc]initWithString:@"1900-01-01 00:00:00 -0500"];
NSDate* maxDate = [[NSDate alloc]initWithString:@"2099-01-01 00:00:00 -0500"];
datePicker.minimumDate = minDate;
datePicker.maximumDate = maxDate;
如果两个日期范围属性中任何一个未被设置,则默认行为将会允许用户选择过去或未来的任意日期。这在某些情况下很有用处,比如,当选择生日时,可以是过去的任意日期,但终止与当前日期。如果你希望设置默认显示的日期,可以使用date属性:
datePicker.date = minDate;
此外,你还可以用 setDate 方法。如果选择了使用动画,则表盘会滚动到你指定的日期:
[datePicker setDate:maxDate animated:YES];
五、显示日期选择器
[self.view addSubview:datePicker];
需要注意的是,选取器的高度始终是216像素,要确定分配了足够的空间来容纳。
六、读取日期
NSDate* _date = datePicker.date;
由于日期选择器是 UIControl的子类 (与UIPickerView不同),你还可以在UIControl类的通知结构中挂接一个委托:
[datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged ];
只要用户选择了一个新日期,你的动作类就会被调用:
-(void)dateChanged:(id)sender{
UIDatepicker* control = (UIDatePicker*)sender;
NSDate* _date = control.date;
/*添加你自己响应代码*/
}
是不是觉得很好玩呢?确实。如果觉得好玩,你也试着封装一个UIPickerView 试试看,打造一个你自己的专用滚轮。
来源:http://blog.csdn.net/iukey/article/details/7327164
分享到:
相关推荐
UIDatePicker 日期/时间选取器(滚轮)—IOS开发 | 学步园 2014年9月5日 - UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会...
andorid下从相册选取/拍照选取一张相片并剪切
iOS开发 相册照片多选 可以在系统相册里面实现一次多张照片选择,简单方便,直接可以用
NoNonsense-FilePicker, android的文件/目录选取器 作为库项目实现 注意:在 KitKat 上,避免使用作为sd卡的文件选取器在 KitKat 或者上版本中,使用内置的android文件选取器代替。 谷歌( Google ) 限制了外部库的...
http://blog.csdn.net/qq_15509071/article/details/72470108这篇博客的示例demo
react-native-modal-datetime-picker, 针对Android和iOS的本地日期时间选取器 react-native-modal-datetime-picker 声明性交叉平台响应本地日期时间选取器。描述这个库公开了一个跨平台接口,用于显示本机日期选取器...
ios开发可以使用的控件图标,使用phtotshop软件打开,选取特定的图标做成24*24像素的png图片,导入ios开发的资源中就可以使用
在andorid手机下实现从相册/相机选取一张相片,在对其进行剪切后上传到服务器
目录 第 1 章 欢迎来到 iOS 和 Swift 世界 1 第 2 章 创建第一个 App 10 第 3 章 基本的用户交互 37 第 4 章 更丰富的用户界面 63 第 5 章 自动旋转 97 第 6 章 创建多视图应用 132 第 7 章 分页栏与选取器 153 第 ...
Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版],这是一本不可多得的介绍使用delphi xe8开发iOS与Android移动应用的电子书,实用的技术开发教程与技术开发手册。 Delphi XE8跨平台开发让你使用一套...
滚轮选择器,似dialog; 功能介绍: 将数据添加到adapter容器中,然后通过滚动和点击来选取数据。 如果有什么问题请留言,看到给与解决,或者性能上有什么好的改善欢迎留言大家学习
iOS城市选取控制器
用于代替系统的图片选择器的控件,基于AssetsLibrary方便定制自己的需求,使用UICollectionView进行图片展示;网上也有一些做的很不错的类似控件,而大多数实现过于复杂不方便自己定制,在试用了几款后决定自己写这...
Excel VBA 操作 拆分当前Excel表中 / 所选取文件夹所有子文件中 所有sheet保存到对应文件夹路径中拆分表内 操作快捷,简单, 无需修改就可以使用
FSDDropdownPicker, iOS的简单下拉列表选取器 FSDDropdownPicker 示例 用法要运行示例项目,克隆 repo,然后从示例目录中运行 pod install 。创建实例你可以通过传入以下命令直接创建一个 intance NSArray<id
最新版,Unity调用Android/IOS系统相册、摄像机,选取后可以裁剪(Demo)
《Iphone开发基础教程》第七章 标签栏与选取器,源代码下载!具体的讲解在我的blog上面,blog.sina.com.cn/wanmeiguanjun.欢迎指点!
pickerDateRange日期范围选取 pickerDateRange日期范围选取 pickerDateRange日期范围选取 pickerDateRange日期范围选取
使用的是,photokit框架,需iOS8.0及以上版本。修改自,https://github.com/vokal/VOKMultiImagePicker-iOS,增加全选功能,修复同时选取多张时,app内存崩溃,修复iPadmini1调试时,缩略图显示页面问题。