iOS 5 - 将 UIDatePicker 的最小日期设置为“今天”

6

我知道如何在UIDatePicker中设置最大和最小日期,但我想知道是否可能使最小日期始终为“今天”日期。 在我的应用程序中,让用户输入过去的日期再添加今天或未来的日期是没有意义的。

1个回答

24

将最小日期设置为当前时间,并将显示日期设置为当前时间 + 2秒:

myDatePicker.date = 
       [[ NSDate alloc ] initWithTimeIntervalSinceNow: (NSTimeInterval) 2 ];
myDatePicker.minimumDate = 
       [[ NSDate alloc ] initWithTimeIntervalSinceNow: (NSTimeInterval) 0 ];

当你初始化Nib或在重用时为视图控制器设置数据时,请执行此操作。您也可以在viewWillAppear中执行此操作。

额外提示:您可以添加一个IBAction方法,以微妙地鼓励用户不选择不明智的日期:

- (IBAction)datePickerChanged: (id)sender
{
     if ( [ datePicker.date timeIntervalSinceNow ] < 0 )
         datePicker.date = now;
}

1
那个 IBAction 方法正是我所缺少的。非常感谢你。 - Robert
IBAction方法在iOS10中似乎不再必要。如果您选择过去的任何时间,选择器将滚动回当前时间。 - DS.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接