iOS上的選擇時間日期的控件是這樣的,左邊是時間和日期混合,右邊是單純的日期模式。
您可以選擇自己需要的模式,Time, Date,Date and Time , Count Down Timer四種模式。
本篇文章簡單介紹下PickerDate控件的使用
1、新建一個Singe View Application,命名為DatePickDemo,其他設置如圖
2、放置控件
打開ViewController.xib,拖拽一個DatePicker控件放到界面上,再拖拽一個Button控件放到界面上,雙擊Button,輸入"選擇日期時間"
3、建立xib和ViewController的關聯
按下command+alt+enter鍵打開Assistant Editor,選中DatePicker按住Control鍵,拖拽到viewController.h上,
建立Outlet datePicker。
以同樣方式給Button建立一個Action關聯映射,命名為selectDate,事件類型為默認的Touch Up Inside。
4、實現代碼
單擊ViewController.m,找到剛才創建的
復制代碼 代碼如下:
- (IBAction)selectDate:(id)sender {
}
在這裡添加響應代碼
復制代碼 代碼如下:
- (IBAction)selectDate:(id)sender {
NSDate *select = [datePicker date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSString *dateAndTime = [dateFormatter stringFromDate:select];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"時間提示" message:dateAndTime delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
[alert show];
}
運行看效果:
5、修改模式成Date模式,修改代碼
復制代碼 代碼如下:
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
常用參數
上面已經提到了一些常用參數的使用,下面再來列一下比較常用的幾個:
1.Locale
設置DatePicker的地區,即設置DatePicker顯示的語言。
跟蹤所有可用的地區,取出想要的地區
復制代碼 代碼如下:
NSLog(@"%@", [NSLocale availableLocaleIdentifiers]);
2. 設置日期選擇控件的地區
復制代碼 代碼如下:
[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]];
復制代碼 代碼如下:
[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"en_SC"]];
Calendar
設置DatePicker的日歷。
默認為當天。
復制代碼 代碼如下:
[datePicker setCalendar:[NSCalendar currentCalendar]];
3.timeZone
設置DatePicker的時區。
默認為設置為:復制代碼 代碼如下:[datePicker setTimeZone:[NSTimeZone defaultTimeZone]];
4.date
設置DatePicker的日期。
默認設置為: 復制代碼 代碼如下:[datePicker setDate:[NSDate date]];
5.minimumDate
設置DatePicker的允許的最小日期。
6.maximumDate
設置DatePicker的允許的最大日期。
7.countDownDuration
設置DatePicker的倒計時間.
1) 設置日期選擇的模
復制代碼 代碼如下:
[self.datePicker setDatePickerMode:UIDatePickerModeCountDownTimer];
2) 設置倒計時的時長
注意:設置倒計時時長需要在確定模式之後指定
復制代碼 代碼如下:
// 倒計時的時長,以秒為單位
[self.datePicker setCountDownDuration:10 * 60];
8.minuteInterval
你可以將分鐘表盤設置為以不同的時間間隔來顯示分鐘,前提是該間隔要能夠讓60整除。默認間隔是一分鐘。如果要使用不同的間隔,需要改變 minuteInterval屬性:
復制代碼 代碼如下:
// 設置分鐘間隔
datePicker.minuteInterval = 15;
9.datePickerMode
9.1 UIDatePickerModeTime,
復制代碼 代碼如下:
// Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)
顯示小時,分鐘和AM/PM,這個的名稱是根據本地設置的
復制代碼 代碼如下:
[datePicker setDatePickerMode:UIDatePickerModeTime];
9.2 UIDatePickerModeDate,
// Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)
顯示年月日,名稱根據本地設置的
復制代碼 代碼如下:
[datePicker setDatePickerMode:UIDatePickerModeDate];
9.3 默認是顯示這種模式
復制代碼 代碼如下:
UIDatePickerModeDateAndTime, // Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting
(e.g. Wed Nov 15 | 6 | 53 | PM)
顯示日期,小時,分鐘,和AM/PM,名稱是根據本地設置的
復制代碼 代碼如下:
[datePicker setDatePickerMode:UIDatePickerModeDateAndTime];
9.4
復制代碼 代碼如下:
UIDatePickerModeCountDownTimer // Displays hour and minute (e.g. 1 | 53)
顯示小時和分鐘
復制代碼 代碼如下:
[datePicker setDatePickerMode:UIDatePickerModeCountDownTimer];
10. UIDatePicker使用教程一。
10.1初始化
復制代碼 代碼如下:
// 不用設置寬高,因為它的寬高是固定的
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
10.2常用設置
復制代碼 代碼如下:
// 設置區域為中國簡體中文
datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
// 設置picker的顯示模式:只顯示日期
datePicker.datePickerMode = UIDatePickerModeDate;
10.3UIDatePicker需要監聽值的改變
復制代碼 代碼如下:
[datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];
11.UIDatePicker使用教程二。
11.1日期范圍
你可以通過設置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;
11.2 如果兩個日期范圍屬性中任何一個未被設置,則默認行為將會允許用戶選擇過去或未來的任意日期。這在某些情況下很有用處,比如,當選擇生日時,可以是過去的任意日期,但終止與當前日期。如果你希望設置默認顯示的日期,可以使用date屬性:
復制代碼 代碼如下:
datePicker.date = minDate;
11.3 此外,你還可以用 setDate 方法。如果選擇了使用動畫,則表盤會滾動到你指定的日期:
復制代碼 代碼如下:
[ datePicker setDate:maxDate animated:YES];