iOS: UIDatePicker удаляет даты за пределами минимальной и максимальной дат

Я написал простой UIDatePicker с минимальной и максимальной датами.

Я хочу, чтобы средство выбора даты НЕ показывало недоступные даты, а не только отключало их.

Фактически: вы можете прокручивать все недоступные даты, но когда вы останавливаетесь на недоступной дате, средство выбора даты прокручивается до ближайшей доступной даты, что хорошо, но недостаточно.

Ожидается: я хотел бы удалить все недоступные даты из средства выбора даты, чтобы их прокрутка даже не была включена.


person B-Man    schedule 09.10.2014    source источник
comment
Как вы справитесь с тем, что компоненты можно настраивать независимо друг от друга? Предположим, ваш минимум — 1 декабря 2013 года, а компоненты в настоящее время — 10 октября 2014 года. 2013 год — допустимый год, поэтому он должен отображаться в компонентах, но если пользователь выберет 2013 год, результирующая дата (10 октября 2013 года) будет раньше вашего минимума. .   -  person pbasdf    schedule 10.10.2014
comment
Я понимаю ... но та же проблема возникает даже в течение допустимого времени (feks 31 jan смещение на 31 февраля заставит его прокручиваться, что нормально). Так что по крайней мере недоступные годы должны исчезнуть. намного меньше прокрутки :) Но я думаю, что это невозможно?   -  person B-Man    schedule 10.10.2014
comment
Я думал дальше - возможно, вы сможете реализовать его как UIPickerView, а не как UIDatePickerView. Вам нужно будет использовать метод pickerView:didSelectRow:inComponent: для добавления/удаления строк из компонентов года/месяца/дня в соответствии с тем, что будет действительным. Я не знаю, сработает ли это, и могут быть какие-то уродливые последствия анимации...   -  person pbasdf    schedule 10.10.2014
comment
Да, я уже подумал об этом, но тогда вам нужно будет вручную жестко запрограммировать весь календарь, чтобы учитывать все месяцы, високосные годы и все такое. Плюс уродливая анимация, хе-хе. В любом случае, спасибо за ваш вклад :) я думаю, мне придется с этим жить.   -  person B-Man    schedule 10.10.2014