UIDatePicker是一個能夠用來選擇日期和時間的控件。除此以外,它也可做爲倒計時控件。
日期選擇器(UIDatePicker)繼承了UIControl,所以UIDatePicker能夠做爲活動控件使用,能與用戶交互,既可在Interface Builder中爲UIDatePicker的Value Changed事件綁定IBAction事件處理方法,也可在代碼中爲該控件綁定事件處理方法。
在Interface Builder中選中一個UIDatePicker,打開對應的屬性檢查器面板,便可看到如圖10.42所示的面板。
ios
圖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系統的國際化Locale。code
3. Interval 僅當該UIDatePicker控件採用Time、Date and Time和Count Down Timer這三種模式時有效,該屬性設置UIDatePicker控件上兩個時間之間的間隔。orm
4. Constraints 該屬性爲UIDatePicker控件設置最小時間和最大時間。若是設置了該屬性值,用戶沒法經過該UIDatePicker控件選擇超出該範圍的日期和時間。對象
5. Timer 僅當該UIDatePicker控件採用Count Down Timer模式時有效,該屬性設置該控件做爲倒計時控件時剩下的秒數。blog
下面經過一個簡單的例子來示範UIDatePicker的功能和用法,先建立一個Single View Application,並使用Interface Builder打開應用的界面設計文件,將UIDatePicker和UIButton拖入應用界面中。對UIDatePicker進行以下修改。
使用Date and Time模式,讓該選擇器同時顯示日期和時間。
將該UIDatePicker的Locale設爲Chinese(Simplified),強制該UIDatePicker顯示簡體中文。
勾選Minimum Date和Maximum Date,並設置一個最小時間和最大時間。
進行上面的修改以後,將UIDatePicker與UIButton兩個控件擺放整齊,如圖10.43所示。
繼承
圖10.43 設計應用界面
程序界面設計完成以後,在Interface Builder中將UIDatePicker控件綁定到datePicker IBOutlet屬性,併爲按鈕的Touch Up Inside事件綁定clicked: IBAction事件處理方法。通過上面所示的步驟以後,接下來修改控制器類的實現部分代碼,主要是實現clicked:事件處理方法,其代碼以下。
程序清單:codes/10/10.11/UIDatePickerTest/UIDatePickerTest/FKViewController.m
上面程序中,clicked:方法的粗體字代碼先獲取UIDatePicker控件的日期、時間,而後程序建立了一個NSDateFormatter對象(日期格式器),並使用該日期格式器對用戶選擇的日期、時間執行格式化。最後使用一個UIAlertView顯示用戶選擇的日期、時間。
編譯、運行該程序,並經過UIDatePicker控件選擇一個日期、時間,而後單擊「肯定」按鈕,便可看到如圖10.44所示的效果。
實例:倒計時器
若是將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
上述程序中,①號粗體字代碼定義了一個leftSeconds變量,該變量用於保存倒計時器的剩餘時間,當用戶單擊程序界面時,將會激發clicked:方法,該方法將啓動一個定時器控制每隔60秒執行一次tickDown方法,而tickDown方法每執行一次,程序就將倒計時器的剩餘時間減小60,並動態修改倒計時器的剩餘時間,這樣就可以讓UIDatePicker顯示的剩餘時間減小。
編譯、運行該程序,經過UIDatePicker設置倒計時器的剩餘時間後,單擊「開始」按鈕,便可看到該倒計時器每隔60秒跳動一次,跳動一次後,剩餘時間減小1分鐘,如圖10.45所示。
————本文節選自《瘋狂ios講義(上)》