Я пытаюсь обновить таймер обратного отсчета в моем пользовательском интерфейсе, который отсчитывает минуты, поэтому мне нужно обновлять его каждое начало новой минуты , что не то же самое, что обновление каждую минуту. Мое текущее решение - инициализация таймера, который вызывает функцию updateUI()
каждую десятую долю секунды, что далеко от идеала:
timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector:#selector(TimesViewController.updateUI), userInfo: nil, repeats: true)
Есть ли способ вызывать эту функцию каждое начало новой минуты?
1 ответ
Создайте таймер, который проверяет системную дату каждую секунду. Например;
Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { (_) in
let second = Calendar.current.component(.second, from: Date())
if second == 0 {
// new minute
updateUI()
}
}
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.
start of a new minute
?