2016-11-10 9 views
0

Я хочу, чтобы мой шагомер использовался для добавления минут к таймеру. По умолчанию шаговые выходы + или - 1, я использую * 60, чтобы сделать это минуту, но это заставляет мой таймер отображать общее количество секунд в моем таймере, а не в минутах. например нажатие дважды читает 120 за время, а не 02:00, как бы это сделать?Изменение значений Stepper для работы в качестве значений времени?

@IBAction func restStepperValueChanged(_ sender: UIStepper) { 
    numberOfRestLabel.text = Int(sender.value).description 
    restCount = Int(sender.value)*60 
    restRemainingCountdownLabel.text = String(restCount) 
} 

ответ

0

Это?

let seconds = restCount % 60 
let minutes = (restCount/60) % 60 
let result = "\(minutes):\(seconds)" 
print(result) 
0

restCount содержит количество секунд, как он установлен здесь:

restCount = Int(sender.value)*60

Например:

, если sender.value = 1, то Int (1) * 60 == 1 * 60 == 60

если отправитель.значение = 2, то Int (2) * 60 == 2 * 60 == 120

Это означает, что эта строка устанавливает количество секунд, а не количество минут:

restRemainingCountdownLabel.text = String(restCount)

Чтобы получить время в формате 02:00 вам нужно будет вручную построить строку, используя спецификатор формата :

String(format: "%02d:%02d", minutesValue, secondsValue)

объяснений:

String(format:) создает строку переменного тока в соответствии с данной строкой формата. Строка формата здесь "%02d:%02d". %d - спецификатор формата для целочисленных значений и его модификация до %02d указывает две цифры с необязательным начальным нулем. Например, '01' или '12'. Мы используем этот спецификатор формата дважды и помещаем двоеточие между ними. а затем передать целочисленные значения для первого и второго спецификаторов формата.

 Смежные вопросы

  • Нет связанных вопросов^_^