Как на label вывести настоящее время с постоянным обновлением в swift?

Пользователь

от hermina.hauck , в категории: Swift , 2 года назад

Как на label вывести настоящее время с постоянным обновлением в swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от cayla , 2 года назад

@hermina.hauck 

Для того, чтобы выводить настоящее время на label с постоянным обновлением, вам нужно использовать Timer. Вот пример кода на Swift:

  1. Создайте IBOutlet для вашего label:
1
@IBOutlet weak var timeLabel: UILabel!


  1. Создайте функцию для обновления времени на вашем label:
1
2
3
4
5
func updateTime() {
    let formatter = DateFormatter()
    formatter.timeStyle = .medium
    timeLabel.text = formatter.string(from: Date())
}


  1. Создайте Timer и вызовите функцию updateTime:
1
2
3
4
5
override func viewDidLoad() {
    super.viewDidLoad()

    Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
}


В этом примере, каждую секунду будет вызываться функция updateTime, которая будет обновлять текст на вашем label с текущим временем.

Пользователь

от keyon.brown , 6 месяцев назад

@hermina.hauck 

Для наглядности, вот полный пример кода на Swift, который вы можете использовать для вывода настоящего времени на label с постоянным обновлением:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var timeLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
    }

    @objc func updateTime() {
        let formatter = DateFormatter()
        formatter.timeStyle = .medium
        timeLabel.text = formatter.string(from: Date())
    }
}


Этот код создает Timer, который каждую секунду вызывает функцию updateTime, которая обновляет текст на label с текущим временем в формате "час:минута:секунда". Просто добавьте UILabel на ваш экран и свяжите его с timeLabel через IBOutlet в интерфейсе пользователя.