您好,登錄后才能下訂單哦!
UIDatePicker是一個(gè)可以用來選擇日期和時(shí)間的控件。除此之外,它也可作為倒計(jì)時(shí)控件。
日期選擇器(UIDatePicker)繼承了UIControl,因此UIDatePicker可以作為活動(dòng)控件使用,能與用戶交互,既可在Interface Builder中為UIDatePicker的Value Changed事件綁定IBAction事件處理方法,也可在代碼中為該控件綁定事件處理方法。
在Interface Builder中選中一個(gè)UIDatePicker,打開對(duì)應(yīng)的屬性檢查器面板,即可看到如圖10.42所示的面板。
圖10.42 UIDatePicker對(duì)應(yīng)的屬性檢查器
從圖10.42可以看出,UIDatePicker支持如下屬性。
1. Mode 該屬性用于設(shè)置該UIDatePicker的模式,它支持如下列表項(xiàng)。
Date:該UIDatePicker控件僅顯示日期,不顯示時(shí)間。
Time:該UIDatePicker控件僅顯示時(shí)間,不顯示日期。
Date and Time:該UIDatePicker控件同時(shí)顯示日期和時(shí)間。
Count Down Timer:該UIDatePicker控件僅顯示為倒計(jì)時(shí)器。
2. Locale 該屬性用于設(shè)置該UIDatePicker的國際化Locale,假設(shè)設(shè)置該UIDatePicker控件國際化Locale為簡體中文環(huán)境,那么它將以簡體中文習(xí)慣顯示日期。實(shí)際上,我們通常無須手動(dòng)設(shè)置Locale,該UIDatePicker控件默認(rèn)使用iOS系統(tǒng)的國際化Locale。
3. Interval 僅當(dāng)該UIDatePicker控件采用Time、Date and Time和Count Down Timer這三種模式時(shí)有效,該屬性設(shè)置UIDatePicker控件上兩個(gè)時(shí)間之間的間隔。
4. Constraints 該屬性為UIDatePicker控件設(shè)置最小時(shí)間和最大時(shí)間。如果設(shè)置了該屬性值,用戶無法通過該UIDatePicker控件選擇超出該范圍的日期和時(shí)間。
5. Timer 僅當(dāng)該UIDatePicker控件采用Count Down Timer模式時(shí)有效,該屬性設(shè)置該控件作為倒計(jì)時(shí)控件時(shí)剩下的秒數(shù)。
下面通過一個(gè)簡單的例子來示范UIDatePicker的功能和用法,先創(chuàng)建一個(gè)Single View Application,并使用Interface Builder打開應(yīng)用的界面設(shè)計(jì)文件,將UIDatePicker和UIButton拖入應(yīng)用界面中。對(duì)UIDatePicker進(jìn)行如下修改。
使用Date and Time模式,讓該選擇器同時(shí)顯示日期和時(shí)間。
將該UIDatePicker的Locale設(shè)為Chinese(Simplified),強(qiáng)制該UIDatePicker顯示簡體中文。
勾選Minimum Date和Maximum Date,并設(shè)置一個(gè)最小時(shí)間和最大時(shí)間。
進(jìn)行上面的修改之后,將UIDatePicker與UIButton兩個(gè)控件擺放整齊,如圖10.43所示。
圖10.43 設(shè)計(jì)應(yīng)用界面
程序界面設(shè)計(jì)完成之后,在Interface Builder中將UIDatePicker控件綁定到datePicker IBOutlet屬性,并為按鈕的Touch Up Inside事件綁定clicked: IBAction事件處理方法。經(jīng)過上面所示的步驟之后,接下來修改控制器類的實(shí)現(xiàn)部分代碼,主要是實(shí)現(xiàn)clicked:事件處理方法,其代碼如下。
程序清單:codes/10/10.11/UIDatePickerTest/UIDatePickerTest/FKViewController.m
上面程序中,clicked:方法的粗體字代碼先獲取UIDatePicker控件的日期、時(shí)間,然后程序創(chuàng)建了一個(gè)NSDateFormatter對(duì)象(日期格式器),并使用該日期格式器對(duì)用戶選擇的日期、時(shí)間執(zhí)行格式化。最后使用一個(gè)UIAlertView顯示用戶選擇的日期、時(shí)間。
編譯、運(yùn)行該程序,并通過UIDatePicker控件選擇一個(gè)日期、時(shí)間,然后單擊“確定”按鈕,即可看到如圖10.44所示的效果。
實(shí)例:倒計(jì)時(shí)器
如果將UIDatePicker的模式設(shè)置為Count Down Timer,即可讓該控件作為倒計(jì)時(shí)器使用。當(dāng)將UIDatePicker作為倒計(jì)時(shí)器使用時(shí),程序還應(yīng)該啟動(dòng)一個(gè)定時(shí)器定期更新該UIDatePicker的剩余時(shí)間。由此可見,把UIDatePicker作為Count Down Timer模式使用時(shí),該控件最重要的屬性就是countDownDuration,該屬性代表該倒計(jì)時(shí)器的剩余時(shí)間,程序既可通過countDownDuration屬性獲取該控件的剩余時(shí)間,也可通過修改該屬性來改變?cè)摽丶@示的剩余時(shí)間。
下面通過示例介紹倒計(jì)時(shí)器的用法。首先創(chuàng)建一個(gè)Single View Application,并使用Interface Builder打開應(yīng)用的界面設(shè)計(jì)文件,將UIDatePicker和UIButton拖入應(yīng)用界面中。將UIDatePicker改為Count Down Timer模式,讓該選擇器作為定時(shí)器使用。進(jìn)行上面的修改之后,將UIDatePicker與UIButton兩個(gè)控件擺放整齊。
界面設(shè)計(jì)完成之后,在Interface Builder中將UIDatePicker控件綁定到countDown IBOutlet屬性,將按鈕控件綁定到startBn IBOutlet屬性,并為按鈕的Touch Up Inside事件綁定clicked: IBAction事件處理方法。經(jīng)過上面的步驟之后,下面來修改控制器類的實(shí)現(xiàn)部分代碼,主要是實(shí)現(xiàn)clicked:事件處理方法,其代碼如下。
程序清單:codes/10/10.11/CountDownTest/CountDownTest/FKViewController.m
上述程序中,①號(hào)粗體字代碼定義了一個(gè)leftSeconds變量,該變量用于保存倒計(jì)時(shí)器的剩余時(shí)間,當(dāng)用戶單擊程序界面時(shí),將會(huì)激發(fā)clicked:方法,該方法將啟動(dòng)一個(gè)定時(shí)器控制每隔60秒執(zhí)行一次tickDown方法,而tickDown方法每執(zhí)行一次,程序就將倒計(jì)時(shí)器的剩余時(shí)間減少60,并動(dòng)態(tài)修改倒計(jì)時(shí)器的剩余時(shí)間,這樣就可讓UIDatePicker顯示的剩余時(shí)間減少。
編譯、運(yùn)行該程序,通過UIDatePicker設(shè)置倒計(jì)時(shí)器的剩余時(shí)間后,單擊“開始”按鈕,即可看到該倒計(jì)時(shí)器每隔60秒跳動(dòng)一次,跳動(dòng)一次后,剩余時(shí)間減少1分鐘,如圖10.45所示。
————本文節(jié)選自《瘋狂ios講義(上)》
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。