【发布时间】:2013-09-07 00:49:53
【问题描述】:
我最近一直在为最大/最小日期苦苦挣扎,老实说,我不知道我在这里错过了什么。我搜索了很多,似乎没有人抱怨它。 (我不是在谈论设置最大/最小日期,因为这些只会使无效日期显示为灰色)
这是我到目前为止所做的:
[myDatePicker addTarget:self action:@selector(disableDate) forControlEvents:UIControlEventValueChanged];
然后,在 disableDate,我有这样的事情:
if ([myDatePicker.date compare:[NSDate date]] == NSOrderedDescending) {
MyDatePicker.date = [NSDate date];
}
(或升序,这取决于我要禁用哪些日期)
问题是:它工作正常,但只有一次。换句话说:只要我打开视图并尝试选择 2007 年,它就会滚动回 2013 年。太好了。但是在那之后,如果我尝试滚动到任何无效的日期(包括 2007 年),它不会再向后滚动,直到我重新打开我的视图。 我觉得我在这里遗漏了一些简单的东西,但我不知道是什么。
提前非常感谢!
PS:顺便提一下,我已经把它放在 disableDate 里面了
NSLog(@"Value changed");
只是为了确保每次滚动日期选择器时它都会调用该方法,是的,它正在工作;
PS2:我也尝试过,但使用的是
- (IBAction)datePickerValueChanged:(id) sender
相反,它的行为完全相同。
【问题讨论】:
-
Tyr 在设置日期后使用
[myDatePicker reloadInputViews];。 -
确实做到了!我之前犯了一个错误!非常感谢!!
-
我添加了我的评论作为答案。如果您愿意,可以将其标记为已接受的答案;)
标签: ios locking uidatepicker minimum