疯狂ios讲义疯狂连载之日期选择器(UIDatePicker)

UIDatePicker是一个能够用来选择日期和时间的控件。除此以外,它也可做为倒计时控件。
日期选择器(UIDatePicker)继承了UIControl,所以UIDatePicker能够做为活动控件使用,能与用户交互,既可在Interface Builder中为UIDatePickerValue Changed事件绑定IBAction事件处理方法,也可在代码中为该控件绑定事件处理方法。
Interface Builder中选中一个UIDatePicker,打开对应的属性检查器面板,便可看到如图10.42所示的面板。
ios

090255_icm7_262659.jpg

10.42  UIDatePicker对应的属性检查器ide



从图10.42能够看出,UIDatePicker支持以下属性。
ui


1. Mode 该属性用于设置该UIDatePicker的模式,它支持以下列表项。spa

Date:该UIDatePicker控件仅显示日期,不显示时间。
Time:该UIDatePicker控件仅显示时间,不显示日期。
Date and Time:该UIDatePicker控件同时显示日期和时间。
Count Down Timer:该UIDatePicker控件仅显示为倒计时器。
设计


2. Locale 该属性用于设置该UIDatePicker的国际化Locale,假设设置该UIDatePicker控件国际化Locale为简体中文环境,那么它将以简体中文习惯显示日期。实际上,咱们一般无须手动设置Locale,该UIDatePicker控件默认使用iOS系统的国际化Localecode


3. Interval 仅当该UIDatePicker控件采用TimeDate and TimeCount Down Timer这三种模式时有效,该属性设置UIDatePicker控件上两个时间之间的间隔。orm


4. Constraints 该属性为UIDatePicker控件设置最小时间和最大时间。若是设置了该属性值,用户没法经过该UIDatePicker控件选择超出该范围的日期和时间。对象


5. Timer 仅当该UIDatePicker控件采用Count Down Timer模式时有效,该属性设置该控件做为倒计时控件时剩下的秒数。blog

下面经过一个简单的例子来示范UIDatePicker的功能和用法,先建立一个Single View Application,并使用Interface Builder打开应用的界面设计文件,将UIDatePickerUIButton拖入应用界面中。对UIDatePicker进行以下修改。
使用Date and Time模式,让该选择器同时显示日期和时间。
将该UIDatePickerLocale设为Chinese(Simplified),强制该UIDatePicker显示简体中文。
勾选Minimum DateMaximum Date,并设置一个最小时间和最大时间。
进行上面的修改以后,将UIDatePickerUIButton两个控件摆放整齐,如图10.43所示。
继承

090321_B7h1_262659.jpg

10.43  设计应用界面



   程序界面设计完成以后,在Interface Builder中将UIDatePicker控件绑定到datePicker IBOutlet属性,并为按钮的Touch Up Inside事件绑定clicked: IBAction事件处理方法。通过上面所示的步骤以后,接下来修改控制器类的实现部分代码,主要是实现clicked:事件处理方法,其代码以下。

程序清单:codes/10/10.11/UIDatePickerTest/UIDatePickerTest/FKViewController.m

wKiom1LgbrniReWuAAMb62dnzNA474.jpg

上面程序中,clicked:方法的粗体字代码先获取UIDatePicker控件的日期、时间,而后程序建立了一个NSDateFormatter对象(日期格式器),并使用该日期格式器对用户选择的日期、时间执行格式化。最后使用一个UIAlertView显示用户选择的日期、时间。

编译、运行该程序,并经过UIDatePicker控件选择一个日期、时间,而后单击“肯定”按钮,便可看到如图10.44所示的效果。

090540_edV0_262659.jpg


实例:倒计时器


若是将UIDatePicker的模式设置为Count Down Timer,便可让该控件做为倒计时器使用。当将UIDatePicker做为倒计时器使用时,程序还应该启动一个定时器按期更新该UIDatePicker的剩余时间。因而可知,把UIDatePicker做为Count Down Timer模式使用时,该控件最重要的属性就是countDownDuration,该属性表明该倒计时器的剩余时间,程序既可经过countDownDuration属性获取该控件的剩余时间,也可经过修改该属性来改变该控件显示的剩余时间。

下面经过示例介绍倒计时器的用法。首先建立一个Single View Application,并使用Interface Builder打开应用的界面设计文件,将UIDatePicker和UIButton拖入应用界面中。将UIDatePicker改成Count Down Timer模式,让该选择器做为定时器使用。进行上面的修改以后,将UIDatePicker与UIButton两个控件摆放整齐。

界面设计完成以后,在Interface Builder中将UIDatePicker控件绑定到countDown IBOutlet属性,将按钮控件绑定到startBn IBOutlet属性,并为按钮的Touch Up Inside事件绑定clicked: IBAction事件处理方法。通过上面的步骤以后,下面来修改控制器类的实现部分代码,主要是实现clicked:事件处理方法,其代码以下。

程序清单:codes/10/10.11/CountDownTest/CountDownTest/FKViewController.m

wKiom1LgbwTB-1rqAAQ0GXJeHS8429.jpg

   上述程序中,①号粗体字代码定义了一个leftSeconds变量,该变量用于保存倒计时器的剩余时间,当用户单击程序界面时,将会激发clicked:方法,该方法将启动一个定时器控制每隔60秒执行一次tickDown方法,而tickDown方法每执行一次,程序就将倒计时器的剩余时间减小60,并动态修改倒计时器的剩余时间,这样就可以让UIDatePicker显示的剩余时间减小。

   编译、运行该程序,经过UIDatePicker设置倒计时器的剩余时间后,单击“开始”按钮,便可看到该倒计时器每隔60秒跳动一次,跳动一次后,剩余时间减小1分钟,如图10.45所示。

090438_ctz7_262659.jpg


————本文节选自《疯狂ios讲义(上)》

093031_HLKX_262659.jpg

相关文章
相关标签/搜索