У меня есть UIDate Picker, встроенный в статический TableViewCell, и на данный момент я отключил большую часть кода, кроме кода, ответственного за выбор даты.
Я использую Date Picker в качестве таймера обратного отсчета
Итак, это все, кроме некоторых обычных выходов и vars:
override func viewDidLoad() {
super.viewDidLoad()
// tfName.delegate = self
// tfDescription.delegate = self
//
datePicker.countDownDuration = 60
// pickerValueChanged(self)
}
@IBAction func pickerValueChanged(sender: AnyObject) {
seconds = Int(datePicker.countDownDuration)
hours = seconds / 3600
if hours == 0{
minutes = seconds / 60
} else{
minutes = seconds % 3600 / 60
}
labelDuration.text = "\(hours) hours \(minutes) minutes"
}
В первый раз, когда я изменяю значение Picker, функция изменения значения не срабатывает вообще, но спины после нее без сбоев.
Я попытался вызвать его в viewDidLoad
, с pickerValueChanged(self)
, и это работает, но не решает проблему. Кроме того, я прокомментировал каждую строку кода в функции pickerValueChanged
и viewDidLoad
, но он все еще не запускал первое вращение.
Спасибо за ваше время!
Обновление: добавленные фотографии
После первого вращения pickerValueChanged не вызывается:
От второго вращения и дальше, событие вызывается и обновляется метка:
Пробовал:
Выполнение: datePicker.setDate(NSDate(), animated: true
в viewDidLoad()
решает проблему, что событие не вызывается при первом вращении, но это устанавливает начальное состояние Date Picker в текущее время. Поскольку я использую этот элемент управления для установки продолжительности события, я хочу, чтобы он начинался с 0 часов и 1 минуты.
Это можно сделать с помощью datePicker.countDownDuration = 60
, но после этого основная проблема снова возвращается.
Таким образом, решение может устанавливать DatePicker с NSDate на 1 минуту, но как это сделать?
Решение:
var dateComp : NSDateComponents = NSDateComponents()
dateComp.hour = 0
dateComp.minute = 1
dateComp.timeZone = NSTimeZone.systemTimeZone()
var calendar : NSCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)!
var date : NSDate = calendar.dateFromComponents(dateComp)!
datePicker.setDate(date, animated: true)