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

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

Ситуация:

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

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

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

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

1 Ответ

20 голосов
/ 13 марта 2010

Вы должны использовать свойство 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 на тот, который вы получаете из БД, и вы должны быть отсортированы:)

...