Нужен UIDatePicker с определенными максимальными и минимальными датами и временем. В настоящее время NSDatePicker.minimumDate и .maximumDate, по-видимому, учитывают только дату. Каков правильный способ справиться с этим?
Могут ли минимальные и максимальные даты UIDatePicker включать время?
Ответы (1)
NSDates содержат как дату, так и время. Из документов:
Объекты NSDate представляют один момент времени.
В приведенном ниже примере текущая дата и время являются минимальным значением, а время через час — максимальным значением (для проверки просто поместите его в viewDidLoad любого UIViewController):
// Time right now
NSDate *minDate = [NSDate new];
// One hour from now
NSDate *maxDate = [[NSDate alloc] initWithTimeIntervalSinceNow:60*60];
UIDatePicker *picker = [UIDatePicker new];
[picker setDatePickerMode:UIDatePickerModeDateAndTime];
[picker setMinimumDate:minDate];
[picker setMaximumDate:maxDate];
[[self view] addSubview:picker];
[super viewDidLoad];
Вы можете прочитать больше о NSDate на Центр разработки.
person
Paulo Fierro
schedule
15.03.2010
Спасибо, Пауло. Да, я знаю об этом, и мои объекты mindate и maxdate NSDate содержат время, но UIDatePicker устанавливает границы только по дате. Другими словами, если я устанавливаю сегодняшнюю дату в 8 утра, это не позволяет мне установить вчерашнюю дату, но я все равно могу выбрать более раннее время... например, 6 утра.
- person CBGrey; 15.03.2010
Это очень странно. Если вы измените minDate на NSDate на несколько часов раньше, вы не сможете выбрать более раннее время. Что происходит в моем случае, когда я выбираю 6 утра, так это то, что средство выбора возвращается к минимально допустимому времени 8 утра. У вас есть образец кода?
- person Paulo Fierro; 16.03.2010
Что ж, я рад слышать, что это работает так, как я думаю. Мне не приятно думать, что у меня есть проблема в моем коде :) Позвольте мне просмотреть его и посмотреть, смогу ли я извлечь соответствующий образец. Спасибо за вашу постоянную помощь.
- person CBGrey; 16.03.2010