【问题标题】:How to hide future or past dates in UIDatePickerView如何在 UIDatePickerView 中隐藏未来或过去的日期
【发布时间】:2015-10-13 13:40:41
【问题描述】:

我想设计一个用户界面来设置出生日期。为此,我选择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 上的通讯录应用中看到该功能。要查看联系人 -> 按顶部的“+”符号,然后按添加生日按钮。

【问题讨论】:

  • 它滚动但在灰色上可见,但它不可选
  • 必须隐藏灰色日期。

标签: ios objective-c uidatepicker


【解决方案1】:

滚动但灰色可见,但不可选择,滚动时无法停止

禁用过去日期:

 pickerView.datePicker.minimumDate=[NSDate date];

禁用未来日期:

pickerView.datePicker.maximumDate=[NSDate date];

如果您需要在您的应用中强制执行此操作,您需要尝试一些 3rdparty 应用,例如 this

【讨论】:

  • 有什么办法可以做到这一点。像任何第三方一样?
  • @muralimohan -- 我也附上第三方,查看答案
  • 但我可以在 ipad 的 cantacts 应用程序中看到该功能。看去联系人--->按顶部的+符号-然后按添加生日按钮-现在看。
  • 如果我运行它,我会得到空白视图。
  • @muralimohan -- 在第三方或本地代码中获得空白视图
【解决方案2】:

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

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

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

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

【讨论】:

  • 这是一个糟糕的答案,代码如何回答这个问题?请在发布前阅读 SO 指南。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多