UIDatePicker в режиме UIDatePickerModeCountDownTimer: как получить / установить часы и минуты с помощью кода?

Как получить / установить часы и минуты с помощью кода из UIDatePicker в режиме UIDatePickerModeCountDownTimer?

Ситуация:

  • У меня есть интерфейс, в котором пользователь выбирает только часы и минуты. Затем он сохраняет информацию (поэтому мне нужно получить часы и минуты из UIDatePicker через код для сохранения в БД).

  • Когда пользователь редактирует ранее сохраненную информацию, я хочу запустить интерфейс с сохраненными часами / минутами (поэтому мне нужно установить часы и минуты UIDatePicker через код со значениями из БД).

Как мне сделать это с помощью UIDatePicker в режиме UIDatePickerModeCountDownTimer?

Заранее спасибо.


person reinaldoluckman    schedule 13.03.2010    source источник


Ответы (1)


Вы должны использовать свойство countDownDuration в UIDatePicker, когда режим выбора даты установлен на UIDatePickerModeCountDownTimer.

Продолжительность обратного отсчета указывается в секундах, поэтому вы можете рассчитать это из NSDate следующим образом (чтобы проверить его, просто поместите его в viewDidLoad любого UIViewController):

// Create a new date with the current time
NSDate *date = [NSDate new];
// Split up the date components
NSDateComponents *time = [[NSCalendar currentCalendar] 
                            components:NSHourCalendarUnit | NSMinuteCalendarUnit 
                            fromDate:date];
NSInteger seconds = ([time hour] * 60 * 60) + ([time minute] * 60);

UIDatePicker *picker = [UIDatePicker new];
[picker setDatePickerMode:UIDatePickerModeCountDownTimer];
[picker setCountDownDuration:seconds];
[[self view] addSubview:picker];

Таким образом, если текущее время 17:28, UIDatePicker покажет «17 часов 28 минут». Просто замените NSDate на тот, который вы получаете из БД, и вы должны быть отсортированы :)

person Paulo Fierro    schedule 13.03.2010