最近、最大/最小の日付に苦労していますが、正直なところ、ここで何が欠けているのかわかりません。私はたくさん検索しましたが、誰もそれについて不平を言うようには見えません。(最大/最小の日付を設定することについては話していません。これらは無効な日付を灰色で表示することしかできないためです)
これまでに行ったことは次のとおりです。
[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
代わりに、まったく同じ動作をしました。