UIPickerView最小和最大日期,隐藏禁用的日期和时间

时间:2019-03-07 20:06:39

标签: ios objective-c uipickerview uidatepicker

我到处都看过(文档,SO和github),似乎使用UIDatePicker无法隐藏禁用的日期和时间。您必须手工完成,或者也有一个吊舱:MonthYearPickerView 。我的团队希望做到这一点而无需任何第三方库,最好使用UIDatePicker而不是手动实现。希望有人可能知道该怎么做。

我需要一个pickerView,它只显示从今天开始(即上午12:00)到今天这一天的日期(可以通过[NSDate date]来实现,它可以为我们提供当前日期和时间):

我需要这个:Needed pickerView

到目前为止,我的情况是:Current Picker View

我当前的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中隐藏禁用时间?我需要它看起来像上面的图片。

请多多帮助和感谢!

0 个答案:

没有答案