所以几周前我询问了如何在 UIDatePicker 上实际锁定特定日期范围的提示,而不是仅仅将它们变灰。它运作良好。 但是现在我遇到了类似的情况,无法正常工作。现在我有一个最小和最大日期,即我只想允许一个小的(或不)日期间隔。
这是我想要做的:(我在日期选择器上添加了一个目标)
-(void) disableDate {
if ([datePicker.date compare:[NSDate date]] == NSOrderedDescending || [datePicker.date compare:datePicker.minimumDate] == NSOrderedAscending) {
datePicker.date = [NSDate date];
[datePicker reloadInputViews];
}
一些注意事项: 1)它只在我第一次更改日期选择器的日期时起作用。第二次(以及以后)它不再起作用了——日期选择器不会回滚到当前日期。 2) 注意 1) 由于某种我不知道的原因正在发生,因为正在调用 disableDate,但应用程序永远不会进入“if”,就像我设置的条件永远不会被满足一样。
换句话说:我不知道为什么它滚动一次,因为它从来没有进入 if 语句,我也不知道为什么它从来没有进入 if 语句!
这里有什么想法吗?
提前致谢!
编辑:设置了最小日期和最大日期。
最佳答案
好吧,如果您希望用户无法选择超出您范围的日期,请使用:
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.minimumDate=_minDate;
datePicker.maximumDate=_maxDate;
定义 _minDate 和 _maxDate 的地方:
NSDateComponents* components=[[NSDateComponents alloc] init];
[components setYear:1900];
_minDate=[[NSCalendar currentCalendar] dateFromComponents:components];
_maxDate=[NSDate date];
还有宾果游戏,限制已定义。
希望对你有帮助
关于iphone - UIDatePicker 上下限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19142789/