, поэтому у меня есть метка, которая отображает время в формате ЧЧ: мм.и этот ярлык будет периодически обновляться каждую минуту.Я могу сделать это на самом деле, используя timer
, как показано ниже:
class HomeVC: UIViewController {
@IBOutlet var timeLabel: UILabel!
private var timer = Timer()
private var timeBase = Date()
override func viewDidLoad() {
super.viewDidLoad()
setTime()
}
}
extension HomeVC {
//MARK: - Method related to time
func setTime() {
activateTimer()
timeLabel.text = dateTimeService.convert(date: timeBase, toFormat: "HH:mm")
dayLabel.text = dateTimeService.convert(date: timeBase, toFormat: "EEEE")
dateLabel.text = dateTimeService.convert(date: timeBase, toFormat: "d MMMM yyyy")
}
func activateTimer() {
timer = Timer.scheduledTimer(timeInterval: 60 , target: self, selector: #selector(HomeVC.updateTimer), userInfo: nil, repeats: true)
}
@objc func updateTimer() {
// add one minute
timeBase = dateTimeService.addMinuteTo(date: timeBase, minute: 1)
// update label
timeLabel.text = dateTimeService.convert(date: timeBase, toFormat: "HH:mm")
}
}
, но оно не будет точно таким же, как время, отображаемое в строке состояния, у него будет разница в несколько секунд, как обновитьметка времени, которая всегда будет соответствовать времени, отображаемому в строке состояния?так что если время в строке состояния изменится, то метка также изменится точно так же