UIDatePicker 日期/時間選取器(滾輪)—IOS開發

來源:互聯網
上載者:User
聲明

歡迎轉載,但是請尊重作者勞動成果,轉載請保留此框內聲明,謝謝。
文章出處:http://blog.csdn.net/iukey

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 試試看,打造一個你自己的專用滾輪。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.