Могут ли минимальные и максимальные даты UIDatePicker включать время?

Нужен UIDatePicker с определенными максимальными и минимальными датами и временем. В настоящее время NSDatePicker.minimumDate и .maximumDate, по-видимому, учитывают только дату. Каков правильный способ справиться с этим?


person CBGrey    schedule 14.03.2010    source источник


Ответы (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
comment
Спасибо, Пауло. Да, я знаю об этом, и мои объекты mindate и maxdate NSDate содержат время, но UIDatePicker устанавливает границы только по дате. Другими словами, если я устанавливаю сегодняшнюю дату в 8 утра, это не позволяет мне установить вчерашнюю дату, но я все равно могу выбрать более раннее время... например, 6 утра. - person CBGrey; 15.03.2010
comment
Это очень странно. Если вы измените minDate на NSDate на несколько часов раньше, вы не сможете выбрать более раннее время. Что происходит в моем случае, когда я выбираю 6 утра, так это то, что средство выбора возвращается к минимально допустимому времени 8 утра. У вас есть образец кода? - person Paulo Fierro; 16.03.2010
comment
Что ж, я рад слышать, что это работает так, как я думаю. Мне не приятно думать, что у меня есть проблема в моем коде :) Позвольте мне просмотреть его и посмотреть, смогу ли я извлечь соответствующий образец. Спасибо за вашу постоянную помощь. - person CBGrey; 16.03.2010