我正在尝试将最大值和最小值设置为我的日期选择器但是它没有正确设置此属性。
我这样做如下:
- (void)viewDidLoad {
[super viewDidLoad];
[self setLimitForDatePicker];
birthdayTextField.inputView = _dateWithYearPicker;
}
-(void)awakeFromNib
{
_dateWithYearPicker = [[UIDatePicker alloc] init];
_dateWithYearPicker.datePickerMode = UIDatePickerModeDate;
[_dateWithYearPicker addTarget:self action:@selector(datePickerDateDidChange) forControlEvents:UIControlEventValueChanged];
}
-(void)setLimitForDatePicker
{
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:-16];
NSDate *minDate = [gregorian dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-110];
NSDate *maxDate = [gregorian dateByAddingComponents:comps toDate:currentDate options:0];
_dateWithYearPicker.minimumDate = minDate;
_dateWithYearPicker.maximumDate = maxDate;
}
在我启动应用程序之后,点击birthdayTextField,日期选择器似乎没有限制。
欢迎您提出所有建议。
答案 0 :(得分:1)
我发现了问题。
我切换了最小和最大日期,正确的答案是:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:-110]; //before it was 16
NSDate *minDate = [gregorian dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-16]; // before it was 110
NSDate *maxDate = [gregorian dateByAddingComponents:comps toDate:currentDate options:0];
_dateWithYearPicker.minimumDate = minDate;
_dateWithYearPicker.maximumDate = maxDate;