日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UIDatePicker 日期/时间选取器(滚轮)—IOS开发

發(fā)布時間:2024/9/30 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UIDatePicker 日期/时间选取器(滚轮)—IOS开发 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

UIDatePicker 是一個控制器類,封裝了 UIPickerView,但是他是UIControl的子類,專門用于接受日期、時間和持續(xù)時長的輸入。日期選取器的各列會按照指定的風(fēng)格進行自動配置,這樣就讓開發(fā)者不必關(guān)心如何配置表盤這樣的底層操作。你也可以對其進行定制,令其使用任何范圍的日期。

UIDatePicker 依賴于 NSDate 類,這個類是cocoa 基礎(chǔ)的一員,以前用于桌面系統(tǒng)。本文中僅需用到 initWithString 來創(chuàng)建NSDate 所以NSDate 留待專題講解,你只需要掌握本文中使用的方法就好。

C代碼??
  • NSDate*?_date?=?[?[?NSDate?alloc]?initWithString:@"2012-03-07?00:35:00?-0500"];????
  • ?

    ?

    一、創(chuàng)建日期/時間選取器

    ?

    UIDatePicker 使用起來比標(biāo)準(zhǔn) UIPickerView 更簡單。他會根據(jù)你指定的日期范圍創(chuàng)建自己的數(shù)據(jù)源。使用它只需要創(chuàng)建一個對象:

    C代碼??
  • UIDatePicker?*datePicker?=?[?[?UIDatePicker?alloc]?initWithFrame:CGRectMake(0.0,0.0,0.0,0.0)];??
  • ?

    默認情況下選取會顯示目前的日期和時間,并提供幾個表盤,分別顯示可以選擇的月份和日期、小時、分鐘、以及上午、下午。因此用戶默認可以選擇任何日期和時間的組合。

    ?

    二、日期選取器模式

    日期/時間選取器支持4種不同模式的選擇方式。通過設(shè)置 datePickerMode 屬性,可以定義選擇模式:

    C代碼??
  • datePicker.datePickerMode?=?UIDatePickerModeTime;???
  • ?

    支持的模式:

    C代碼??
  • 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;??
  • ?

    三、時間間隔

    ?

    你可以將分鐘表盤設(shè)置為以不同的時間間隔來顯示分鐘,前提是該間隔要能夠讓60整除。默認間隔是一分鐘。如果要使用不同的間隔,需要改變 minuteInterval屬性:

    C代碼??
  • datePicker.minuteInterval?=?5;????
  • ?

    四、日期范圍

    ?

    你可以通過設(shè)置mininumDate 和 maxinumDate 屬性,來指定使用的日期范圍。如果用戶試圖滾動到超出這一范圍的日期,表盤會回滾到最近的有效日期。兩個方法都需要NSDate 對象作參數(shù):

    C代碼??
  • 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;???
  • ?

    如果兩個日期范圍屬性中任何一個未被設(shè)置,則默認行為將會允許用戶選擇過去或未來的任意日期。這在某些情況下很有用處,比如,當(dāng)選擇生日時,可以是過去的任意日期,但終止與當(dāng)前日期。如果你希望設(shè)置默認顯示的日期,可以使用date屬性:

    C代碼??
  • datePicker.date?=?minDate;????
  • ?

    此外,你還可以用 setDate 方法。如果選擇了使用動畫,則表盤會滾動到你指定的日期:

    C代碼??
  • [datePicker?setDate:maxDate?animated:YES];??
  • ?

    五、顯示日期選擇器

    C代碼??
  • [self.view?addSubview:datePicker];??
  • ?

    需要注意的是,選取器的高度始終是216像素,要確定分配了足夠的空間來容納。

    ?

    六、讀取日期

    C代碼??
  • NSDate*?_date?=?datePicker.date;???
  • ?

    由于日期選擇器是 UIControl的子類 (與UIPickerView不同),你還可以在UIControl類的通知結(jié)構(gòu)中掛接一個委托:

    C代碼??
  • [datePicker?addTarget:self?action:@selector(dateChanged:)?forControlEvents:UIControlEventValueChanged?];??
  • ?

    只要用戶選擇了一個新日期,你的動作類就會被調(diào)用:

    C代碼??
  • -(void)dateChanged:(id)sender{????
  • ??????????UIDatepicker*?control?=?(UIDatePicker*)sender;????
  • NSDate*?_date?=?control.date;????
  • /*添加你自己響應(yīng)代碼*/????
  • }????
  • ?

    是不是覺得很好玩呢?確實。如果覺得好玩,你也試著封裝一個UIPickerView 試試看,打造一個你自己的專用滾輪。

    ?

    ?

    ?

    來源:http://blog.csdn.net/iukey/article/details/7327164

    總結(jié)

    以上是生活随笔為你收集整理的UIDatePicker 日期/时间选取器(滚轮)—IOS开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。