как на label вывести настоящее время с постоянным обновлением swift
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let seconds = calendar.component(.second, from: date)
let hourString = String(hour)
let minutesString = String(minutes)
let secondsString = String(seconds)
SecondLabel.text = hourString + ":" + minutesString + ":" + secondsString
updatelabel = Timer.scheduledTimer(timeInterval: 0, target: self,
selector: #selector(setter: SecondLabel), userInfo: nil, repeats: true)
Ответы (1 шт):
Автор решения: schmidt9
→ Ссылка
class ViewController: UIViewController {
@IBOutlet var secondLabel: UILabel!
private var timer: Timer!
override func viewDidLoad() {
super.viewDidLoad()
timer = Timer.scheduledTimer(timeInterval: 1,
target: self,
selector: #selector(countSeconds(_:)),
userInfo: nil,
repeats: true)
}
@objc func countSeconds(_ sender: Timer) {
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let seconds = calendar.component(.second, from: date)
let hourString = String(hour)
let minutesString = String(minutes)
let secondsString = String(seconds)
DispatchQueue.main.async {
self.secondLabel.text = hourString + ":" + minutesString + ":" + secondsString
}
}
}