我到处都看过(文档,SO和github),似乎使用UIDatePicker无法隐藏禁用的日期和时间。您必须手工完成,或者也有一个吊舱:MonthYearPickerView
。我的团队希望做到这一点而无需任何第三方库,最好使用UIDatePicker
而不是手动实现。希望有人可能知道该怎么做。
我需要一个pickerView
,它只显示从今天开始(即上午12:00)到今天这一天的日期(可以通过[NSDate date]
来实现,它可以为我们提供当前日期和时间):
我当前的UIDatePicker
代码是
-(void)createDatePicker {
timePicker = [[UIDatePicker alloc]init];
timePicker.datePickerMode = UIDatePickerModeDateAndTime;
timePicker.minuteInterval = 5;
//Date intervals, to attempt to limit dates from start of today until this minute today.
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:0];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setDay:-1];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
timePicker.minimumDate = minDate;
timePicker.maximumDate = maxDate;
_startTimeTextField.inputView = timePicker; //Calls on Picker View when Tapped.
[timePicker addTarget:self action:@selector(timeChanged) forControlEvents:UIControlEventValueChanged]; }
所以在这一点上,我仍然需要两件事的帮助:
1)我如何将minimumDate
限制在今天最早的时间? (目前,这是最早一天的时间-包括昨天,所以rightNow-24小时。我需要rightNow-今天的时间过去了。)
2)如何在pickerView中隐藏禁用时间?我需要它看起来像上面的图片。
请多多帮助和感谢!