В последнее время я борется с максимальной/минимальной датой, и, честно говоря, я не знаю, чего мне здесь не хватает. Я много искал, и никто, кажется, не жалуется на это. (Я не говорю о настройке максимальной/минимальной даты, как это может сделать только недействительные даты отображаются серым цветом)iOS Datepicker: как заблокировать недействительные даты?
Вот что я сделал до сих пор:
[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");
просто чтобы убедиться, что это вызов метода каждый раз я прокручивать DatePicker, и да, это работает;
PS2: Я пробовал то же самое, но с использованием
- (IBAction)datePickerValueChanged:(id) sender
вместо, и это было точно такое же поведение.
Тир с помощью '[myDatePicker reloadInputViews];' после установки даты – danypata
. это не сработало:/ – user2743901
На самом деле это было! Я делал ошибку раньше! Спасибо вам большое! – user2743901