无法在 uidatepicker 中设置最小日期
Can't set the minimum date in uidatepicker
我在 stack over flow 中经历了很多关于在 UIDatepicker 中设置最小日期的问题和答案,我已经尝试了大部分但我仍然无法设置UIDatepicker 中的最小日期。我的确切要求是,70 岁以上的人不应注册我的应用程序。这是我试过但没有给我确切结果的代码。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
NSDateComponents *compsII = [[NSDateComponents alloc] init];
[comps setYear:-14];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[compsII setYear:1960];
NSDate *minDate = [[NSCalendar currentCalendar] dateFromComponents:compsII];
datePicker =[[UIDatePicker alloc]initWithFrame:CGRectMake(0, 400, self.view.frame.size.width, 200)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden=NO;
datePicker.maximumDate = maxDate;
datePicker.minimumDate = minDate;
我认为这是你的问题
- 你的最小和最大日期设置错误。
- 您已将年份设置为 -14。
更新:
试试这个代码:
NSDate *todaysDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *minDateComponents = [[NSDateComponents alloc] init];
[minDateComponents setYear:-70];
NSDate *minDate = [gregorian dateByAddingComponents:minDateComponents toDate:todaysDate options:0];
NSDateComponents *maxDateComponents = [[NSDateComponents alloc] init];
[maxDateComponents setYear:-14];
NSDate *maxDate = [gregorian dateByAddingComponents:maxDateComponents toDate:todaysDate options:0];
[formatter setDateFormat:@"MMM dd,yyyy"];
NSDate *date = [formatter dateFromString:lblDate.text];
datePicker.minimumDate=date;
我在 stack over flow 中经历了很多关于在 UIDatepicker 中设置最小日期的问题和答案,我已经尝试了大部分但我仍然无法设置UIDatepicker 中的最小日期。我的确切要求是,70 岁以上的人不应注册我的应用程序。这是我试过但没有给我确切结果的代码。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
NSDateComponents *compsII = [[NSDateComponents alloc] init];
[comps setYear:-14];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[compsII setYear:1960];
NSDate *minDate = [[NSCalendar currentCalendar] dateFromComponents:compsII];
datePicker =[[UIDatePicker alloc]initWithFrame:CGRectMake(0, 400, self.view.frame.size.width, 200)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden=NO;
datePicker.maximumDate = maxDate;
datePicker.minimumDate = minDate;
我认为这是你的问题
- 你的最小和最大日期设置错误。
- 您已将年份设置为 -14。
更新:
试试这个代码:
NSDate *todaysDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *minDateComponents = [[NSDateComponents alloc] init];
[minDateComponents setYear:-70];
NSDate *minDate = [gregorian dateByAddingComponents:minDateComponents toDate:todaysDate options:0];
NSDateComponents *maxDateComponents = [[NSDateComponents alloc] init];
[maxDateComponents setYear:-14];
NSDate *maxDate = [gregorian dateByAddingComponents:maxDateComponents toDate:todaysDate options:0];
[formatter setDateFormat:@"MMM dd,yyyy"];
NSDate *date = [formatter dateFromString:lblDate.text];
datePicker.minimumDate=date;