前几天有用到选择日期的功能,简单封装了一下,实现UItextFiled的inputView改变成UIDatePicker从而达到输入日期的目的。整体是思路是自定义textField,将UIDatePicker作为其一个属性。
下边是具体代码。
#import "DatetextField.h"
@implementation DatetextField
- (instancetype)init
{
self = [super init];
if (self) {
[self datePicer];
}
return self;
}
-(UIDatePicker *)datePicer{
if (!_datePicer) {
_datePicer = [[UIDatePicker alloc]init];
_datePicer.datePickerMode = UIDatePickerModeDate;
//设置中文显示
NSLocale *locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];
_datePicer.locale = locale;
self.inputView = _datePicer;
// 点击或者滑动时触发方法
[_datePicer addTarget:self action:@selector(dateChenged:) forControlEvents:UIControlEventValueChanged];
}
return _datePicer;
}
-(void)dateChenged:(UIDatePicker *)sender{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];//设置输出的格式
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
self.text = [dateFormatter stringFromDate:sender.date];
NSLog(@"%@",[dateFormatter stringFromDate:sender.date]);
}
这样在外界直接定义子类的DSTextField就可以实现日期选择的功能了。