/baohebao/baohebao/Comm/DatePicker.m
Objective C | 142 lines | 100 code | 7 blank | 35 comment | 3 complexity | 96c27a81f834fb0d130abda58b5ca03e MD5 | raw file
- #import "DatePicker.h"
- @implementation DatePicker
- -(UIDatePicker*)datePicker
- {
- return datePicker;
- }
- -(UIButton*)btnDate
- {
- return btnDate;
- }
- -(NSDate*)date
- {
- return date;
- }
- -(void)setDate:(NSDate *)d
- {
- date=d;
- datePicker.date=date;
- }
- -(NSDateFormatter*)dateFormatter
- {
- return dateFormatter;
- }
- -(void)setDateFormatter:(NSDateFormatter *)df{
- dateFormatter=df;
- [btnDate setTitle:[dateFormatter stringFromDate:date] forState:UIControlStateNormal];
- }
- -(UIDatePickerMode)datePickerMode
- {
- return datePickerMode;
- }
- -(void)setDatePickerMode:(UIDatePickerMode)mode{
- datePickerMode=mode;
- datePicker.datePickerMode=datePickerMode;
- }
- - (id)initWithFrame:(CGRect)frame {
- if ((self = [super initWithFrame:frame])) {
- //???????yyyy-MM-dd
- dateFormatter= [[NSDateFormatter alloc] init];
- [dateFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]];//location?????
- [dateFormatter setDateFormat:@"yyyy-MM-dd"];
- //picker??????????
- date=[NSDate date];
- //picker???style??????
-
- //???????,?????????
- subview=[[UIView alloc]initWithFrame:CGRectMake(0, 20, 320, 460)];
- subview.backgroundColor=[UIColor clearColor];
- subview.tag=0;
- UIButton * btnClose = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 320, 246)];
- [btnClose addTarget:self action:@selector(btnCloseClick) forControlEvents:(UIControlEventTouchUpInside)];
- btnClose.backgroundColor = [UIColor blackColor];
- btnClose.alpha=0.6;
- [subview addSubview:btnClose];
- //[btnClose release];
- // //???????????
- // UIBarButtonItem* item = [[UIBarButtonItem alloc]
- // initWithBarButtonSystemItem:UIBarButtonSystemItemStop
- // target:self action:@selector(btnCloseClick)];
- // NSArray* buttons=[NSArray arrayWithObjects:item,nil];
- // //?????????
- // UIToolbar *subToolbar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
- // subToolbar.barStyle = UIBarStyleBlackTranslucent;
- // [subToolbar sizeToFit];
- // [subToolbar setItems:buttons animated:YES]; //????????
- // [subview addSubview:subToolbar];//?????????
- // [subToolbar release];
- //??????datePicker
- datePicker=[[UIDatePicker alloc]init];
- [datePicker setDate:date];
- datePicker.frame=CGRectMake(0, 480-216-20, 320, 216);
- datePickerMode=UIDatePickerModeDate;
- datePicker.datePickerMode=datePickerMode;
- //??datepicker?valueChanged??
- [datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
- [subview addSubview:datePicker]; //?datePicker?????
- //?????????????
- //???
- btnDate=[UIButton buttonWithType:UIButtonTypeCustom];
- btnDate.backgroundColor = [UIColor clearColor];
- [btnDate setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
- btnDate.frame=CGRectMake(0, 0, 80, 30);
- [self bringSubviewToFront:btnDate];
- [btnDate.titleLabel setFont:[UIFont systemFontOfSize:14]];
- [btnDate setTitle:[dateFormatter stringFromDate:date] forState:UIControlStateNormal];
- [self addSubview:btnDate];
- //[btnDate addTarget:self action:@selector(clickdate:) forControlEvents:(UIControlEventTouchUpInside)];
- }
- return self;
- }
- //?datepicker???????
- -(void)dateChanged:(id)sender{
- date = [sender date];//??datepicker???
- //??textField??
- NSString* str = [NSString stringWithString:[dateFormatter stringFromDate:date]];
- [btnDate setTitle:str forState:UIControlStateNormal];
- }
- //?????????
- -(void)btnCloseClick{
- if(subview!=nil){
- subview.tag=0;
- [subview removeFromSuperview];
- }
- }
- - (void)dealloc {
- [date release];
- [dateFormatter release];
- [datePicker release];
- [subview release];
- [super dealloc];
- }
- -(void)clickdate:(id)sender{
- if (subview.tag==0) {//?tag????0???datepicker???
- //?tag???1???????
- subview.tag=1;
- [self.window addSubview:subview];
- }
- }
- -(NSInteger)getSubViewTag{
- return subview.tag;
- }
- -(void)showSubView{
- subview.tag=1;
- [self.window addSubview:subview];
- }
- #pragma mark textField delegate method
- ////?textField??????
- //-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
- // if (subview.tag==0) {//?tag????0???datepicker???
- // //?tag???1???????
- // subview.tag=1;
- // [self.superview addSubview:subview];
- // }
- // return NO;
- //}
- @end