UIDatePicker约束在设备中不起作用

时间:2013-09-26 09:45:15

标签: ios objective-c uidatepicker

我在项目中使用UIDatePicker控件。在xib文件中添加了UIDatePicker,并以编程方式将minimumDate,maximumDate等约束设置为datePicker。这在模拟器中工作正常,但在设备中我可以在datePicker中选择任何日期。

示例代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.datePicker setMinimumDate:[NSDate date]];
    [self.datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:3*24*60*60]];
}

截图:

Here, i am able to select the previous dates also.

注意:我正在研究xcode5 - DP6。

提前致谢。

1 个答案:

答案 0 :(得分:0)

UIControlEventValueChanged上为UIDatePicker事件添加操作,并执行检查,以查看所选日期是否大于最大日期或小于最小日期,并相应地设置日期,如下所示:

- (IBAction)dateValueChanged:(id)sender
{
    NSTimeInterval date = [self.datePicker.date timeIntervalSince1970];
    NSTimeInterval maxmimumDate = [self.datePicker.maximumDate timeIntervalSince1970];
    NSTimeInterval minimumDate = [self.datePicker.minimumDate timeIntervalSince1970];

    if (date < minimumDate) {
        self.datePicker.date = self.datePicker.minimumDate;
    }

    if (date > maxmimumDate) {
        self.datePicker.date = self.datePicker.maximumDate;
    }

    // Use the selected date
    NSLog(@"%@", self.datePicker.date);
}

如果您选择超出范围的日期,这将导致UIDatePicker滚动到最大/最小日期。