美文网首页
点击textfield实现弹出UIDatePicker日期选择器

点击textfield实现弹出UIDatePicker日期选择器

作者: Daeva_Song | 来源:发表于2016-07-15 16:18 被阅读2072次

对于实现点击TextField弹出日期选择器的方法有多种多样,可以将UIDatePicker作为textfield的inputView,或者用通知中心监听键盘弹出的响应事件,也可通过textfield的代理方法来实现。

这里我选择用textfield的inputView来实现该操作。(只做简单的讲解,其实还可通过把toolbar设置为inputAccessoryView实现拓展功能)

首先在控制器的.h文件声明三个成员变量

UIDatePicker*datePicker;

UITextField*dateTextField;

NSLocale*datelocale;

然后初始化一个UITextfield实例对象,这里不做说明了(太Easy了好么)。

再对.h中声明的datePicker实例化

datePicker= [[UIDatePickeralloc]init];

datelocale= [[NSLocalealloc]initWithLocaleIdentifier:@"zh_zn"];//设置时区

datePicker.locale=datelocale;

datePicker.timeZone= [NSTimeZonetimeZoneWithName:@"GMT"];

datePicker.datePickerMode=UIDatePickerModeDate;

//这句是重点

dateTextField.inputView=datePicker;

苹果使用的是格里高利历 这里进行设置

NSDate*localDate = [NSDatedate];

NSCalendar*calendar = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents*components = [[NSDateComponentsalloc]init];

[componentssetYear:-100];

[componentssetMonth:12];

[componentssetDay:30];

NSDate*minDate = [calendardateByAddingComponents:componentstoDate:localDateoptions:0];

_datePicker.maximumDate= localDate;

_datePicker.minimumDate= minDate;

上面利用日期偏移设置最大日期和最小日期

//接下来为日期选择器添加事件 条件是当值改变 使显示在textfield上的时间做出改变

[_datePickeraddTarget:self action:@selector(selectDate:)forControlEvents:UIControlEventValueChanged];

//事件中设置日期显示格式和显示位置

-(void)selectDate:(UIDatePicker *)datePicker

{

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

dateFormatter setDateFormat = @"yyyy-MM-dd";

[dateFormatter setLocale:dateLocale];

self.dateTextField.text = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:datePicker.date]];

}

以上就可以实现了。

相关文章

网友评论

      本文标题:点击textfield实现弹出UIDatePicker日期选择器

      本文链接:https://www.haomeiwen.com/subject/wfmyjttx.html