gpt4 book ai didi

swift - 如何获取日期和时间以在 UILabel 中显示时钟

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:15 25 4
gpt4 key购买 nike

我是 swift(和一般编程)的新手,现在我正在做一个项目,我想在标签中显示一个时钟。

现在我的模型中有这个:

class CurrentDateAndTime {

let currentTime = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .MediumStyle, timeStyle: .MediumStyle)
}

然后在我的 View Controller 中使用此代码将其调用到标签中:

@IBOutlet weak var currentTimeLabel: UILabel!

let currentTime = CurrentDateAndTime()



override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

currentTimeLabel.text = currentTime.currentTime
}

问题是这不会在第二个时间间隔内更新以显示实际时间。最终我将需要获得两个时间戳之间的差异,以便我可以记录“开始时间”和“停止时间”之间的小时数。这甚至是最好/最简单的方法吗?任何有助于实现我的目标的线索都将不胜感激。

最佳答案

使用 NSTimer 以您想要的时间间隔安排回调——在本例中,

  • 每秒在self上调用tick()
  • tick() 获取当前时间字符串并更新 UILabel

    class MyViewController {
    @IBOutlet weak var currentTimeLabel: UILabel!

    var timer = NSTimer()

    override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view, typically from a nib.

    timer = NSTimer.scheduledTimerWithTimeInterval(1.0
    target: self,
    selector: #selector(tick),
    userInfo: nil,
    repeats: true)
    }

    @objc func tick() {
    currentTimeLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(),
    dateStyle: .MediumStyle,
    timeStyle: .MediumStyle)
    }
    }

Swift 4.0 更新:

class MyViewController : UIViewController {
@IBOutlet weak var currentTimeLabel: UILabel!

var timer = Timer()

override func viewDidLoad() {
super.viewDidLoad()
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector:#selector(self.tick) , userInfo: nil, repeats: true)
}

@objc func tick() {
currentTimeLabel.text = DateFormatter.localizedString(from: Date(),
dateStyle: .medium,
timeStyle: .medium)
}
}

关于swift - 如何获取日期和时间以在 UILabel 中显示时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26930812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com