1

有没有办法限制/约束 UIDatePicker 的时间。

即,如果我希望选择器仅在下午 3:00 至晚上 8:00 之间显示时间,而在那之前什么都没有,这可能吗?

代码示例会很好。谢谢!

编辑

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
{


    // **EDIT 2**
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setMinute:10];
    [comps setHour:5];
    NSDate *minimumTime = [[NSCalendar currentCalendar] dateFromComponents:comps];


    UIDatePicker *pickerView = [[[UIDatePicker alloc] init] initWithFrame:CGRectMake(0, 40, 320, 216)];

    pickerView.datePickerMode = UIDatePickerModeTime;
    [pickerView setMinimumDate:minimumTime];

    [pickerView setMinuteInterval:15];
    [pickerView setTag: kDatePickerTag1];
    //Add picker to action sheet
    [actionSheet addSubview:pickerView];
    NSArray *subviews = [actionSheet subviews];
}

startTimeLabel 是一个 NSString 变量(即下午 6:30),应该用作 UIPicker 上的最短时间。

图片: 在此处输入图像描述

4

1 回答 1

2

使用此代码:

[datePicker setMaximumDate:yourmaxDate];
[datePicker setMinimumDate:yourminDate];

创建 NSDate:

NSDate *todaysDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [gregorian components: NSUIntegerMax fromDate:todaysDate];
[comps setMinute:10];
[comps setHour:5];
[comps setSecond:0];
NSDate *yourminDate = [gregorian dateFromComponents:comps];
于 2013-07-18T22:33:51.610 回答