如何在UIDatePickerView中隐藏未来或过去的日期

时间:2015-10-13 13:40:42

标签: ios objective-c uidatepicker

我想设计一个用于设置出生日期的UI。为此,我选择了UIDatePickerView。现在我想将日期限制在01-01-1990和当前日期之间。它不应显示未来的日期和过去的日期。目前我使用以下代码:

NSDateComponents *components=[[NSDateComponents alloc] init];

[components setYear:1900];

pickerView.datePicker.minimumDate = [[NSCalendar currentCalendar] dateFromComponents:components];
pickerView.datePicker.maximumDate=[NSDate date]

它限制了日期,但它允许用户滚动到将来的日期和过去的日期。我该如何隐藏或避免它们?

我可以在iPad上的通讯录应用中看到该功能。要查看“联系人” - >按顶部的“+”符号,然后按“添加生日”按钮。

2 个答案:

答案 0 :(得分:3)

它滚动但在灰色上可见,但它不可选,不可能在滚动时停止

禁用过去日期:

 pickerView.datePicker.minimumDate=[NSDate date];

禁用未来日期:

pickerView.datePicker.maximumDate=[NSDate date];

如果您的应用需要此强制功能,则需要尝试使用某些第三方应用,例如this

答案 1 :(得分:1)

要隐藏未来日期,请使用以下代码:

let now = Date();
pickerviewOutletname.maximumDate = now

要隐藏过去的日期,请使用以下代码:

let now = Date();
pickerviewOutletname.minimumDate = now