設(shè)置UIDatePicker的時間顯示范圍

設(shè)置UIDatePicker顯示時間段

1.定義兩個實力變量

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ū)域為中國簡體中文

datePicker.locale= [[NSLocalealloc]initWithLocaleIdentifier:@"zh_CN"];

//設(shè)置picker的顯示模式:只顯示日期

datePicker.datePickerMode=UIDatePickerModeDate;

//設(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.點擊按鈕, 觸發(fā)datepickerShow()方法,選擇時間

- (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"];


}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容