設(shè)置UIDatePicker顯示時(shí)間段
1.定義兩個(gè)實(shí)力變量
UIDatePicker*datePicker; //日期屬性
UIToolbar*inputAccessoryView;//日期上方的取消和確定視圖
2.初始化控件
- (void)setDatePickerStyle {
if(!inputAccessoryView)
{
inputAccessoryView= [[UIToolbaralloc]init];
inputAccessoryView.barStyle=UIBarStyleDefault;
inputAccessoryView.autoresizingMask=UIViewAutoresizingFlexibleHeight;
[inputAccessoryViewsizeToFit];
inputAccessoryView.frame=CGRectMake(0,kScreenHeight,kScreenWidth,44);
UIBarButtonItem*cancelBtn = [[UIBarButtonItemalloc]initWithTitle:@"取消"style:UIBarButtonItemStyleDonetarget:selfaction:@selector(cancel:)];
UIBarButtonItem*doneBtn = [[UIBarButtonItemalloc]initWithTitle:@"確定"style:UIBarButtonItemStyleDonetarget:selfaction:@selector(done:)];
UIBarButtonItem*flexibleSpaceLeft = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpacetarget:nilaction:nil];
NSArray*array = [NSArrayarrayWithObjects:cancelBtn,flexibleSpaceLeft, doneBtn,nil];
[inputAccessoryViewsetItems:array];
[[[UIApplicationsharedApplication].delegatewindow]addSubview:inputAccessoryView];
}
if(!datePicker) {
datePicker= [[UIDatePickeralloc]init];
datePicker.frame=CGRectMake(0,kScreenHeight,kScreenWidth,216);
datePicker.backgroundColor= [UIColorlightGrayColor];
//設(shè)置區(qū)域?yàn)橹袊嗴w中文
datePicker.locale= [[NSLocalealloc]initWithLocaleIdentifier:@"zh_CN"];
//設(shè)置picker的顯示模式:只顯示日期
datePicker.datePickerMode=UIDatePickerModeDate;
//設(shè)置時(shí)間可選擇的范圍:前七天--(七天時(shí)間)--今天
datePicker.minimumDate= [NSDatedateWithTimeInterval:-6*24*60*60sinceDate:[NSDatedate]];//七天前的那天
datePicker.maximumDate= [NSDatedate];//今天
[datePickeraddTarget:selfaction:@selector(dateChanged:)forControlEvents:UIControlEventValueChanged];
[[[UIApplicationsharedApplication].delegatewindow]addSubview:datePicker];//添加到主窗口上,也可以添加到當(dāng)前視圖上(根據(jù)需求而定)
}
}
3.點(diǎn)擊按鈕, 觸發(fā)datepickerShow()方法,選擇時(shí)間
- (void)datepickerShow
{
[UIViewanimateWithDuration:.3animations:^{
datePicker.frame=CGRectMake(0,kScreenHeight-216,kScreenWidth,216);
inputAccessoryView.frame=CGRectMake(0,kScreenHeight-216-44,kScreenWidth,44);
}completion:^(BOOLfinished) {
}];
}
4.inputAccessoryView的取消和確定操作
//取消
- (void)cancel:(UIBarButtonItem*)sender {
[UIViewanimateWithDuration:.3animations:^{
datePicker.frame=CGRectMake(0,kScreenHeight,kScreenWidth,216);
inputAccessoryView.frame=CGRectMake(0,kScreenHeight,kScreenWidth,44);
}completion:^(BOOLfinished) {
}];
}
//確定
- (void)done:(UIBarButtonItem*)sender {
[UIViewanimateWithDuration:.3animations:^{
datePicker.frame=CGRectMake(0,kScreenHeight,kScreenWidth,216);
inputAccessoryView.frame=CGRectMake(0,kScreenHeight,kScreenWidth,44);
}completion:^(BOOLfinished) {
? ? //需要進(jìn)行的操作
}];
}
5.UIDatePicker--- delegate?
- (void)dateChanged:(UIDatePicker*)sender {
//將日期轉(zhuǎn)換成需要的樣式
NSDateFormatter* YMD = [[NSDateFormatteralloc]init];
[YMDsetDateFormat:@"yyyy-MM-dd"];
}