您好,登錄后才能下訂單哦!
UIDatePicker是一個可以用來選擇日期和時間的控件。除此之外,它也可作為倒計時控件。
日期選擇器(UIDatePicker)繼承了UIControl,因此UIDatePicker可以作為活動控件使用,能與用戶交互,既可在Interface Builder中為UIDatePicker的Value Changed事件綁定IBAction事件處理方法,也可在代碼中為該控件綁定事件處理方法。
在Interface Builder中選中一個UIDatePicker,打開對應的屬性檢查器面板,即可看到如圖10.42所示的面板。
圖10.42 UIDatePicker對應的屬性檢查器
從圖10.42可以看出,UIDatePicker支持如下屬性。
1. Mode 該屬性用于設置該UIDatePicker的模式,它支持如下列表項。
Date:該UIDatePicker控件僅顯示日期,不顯示時間。
Time:該UIDatePicker控件僅顯示時間,不顯示日期。
Date and Time:該UIDatePicker控件同時顯示日期和時間。
Count Down Timer:該UIDatePicker控件僅顯示為倒計時器。
2. Locale 該屬性用于設置該UIDatePicker的國際化Locale,假設設置該UIDatePicker控件國際化Locale為簡體中文環境,那么它將以簡體中文習慣顯示日期。實際上,我們通常無須手動設置Locale,該UIDatePicker控件默認使用iOS系統的國際化Locale。
3. Interval 僅當該UIDatePicker控件采用Time、Date and Time和Count Down Timer這三種模式時有效,該屬性設置UIDatePicker控件上兩個時間之間的間隔。
4. Constraints 該屬性為UIDatePicker控件設置最小時間和最大時間。如果設置了該屬性值,用戶無法通過該UIDatePicker控件選擇超出該范圍的日期和時間。
5. Timer 僅當該UIDatePicker控件采用Count Down Timer模式時有效,該屬性設置該控件作為倒計時控件時剩下的秒數。
下面通過一個簡單的例子來示范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講義(上)》
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。