小编Be *_* Do的帖子

从后台计时器更新标签

再会,

我正在开发一个工作正常的锻炼应用程序,除非将它移到后台。计时器挂起时暂停。我找到了一个我正在工作的后台计时器示例,但现在我无法让显示锻炼持续时间的 UILabel 工作。在控制台中,它指出我正在从我理解的主线程访问一个对象。我不知道该怎么做是让 UILabel 更新,因为计时器从后台线程中更新,更新标签在主线程中。

这是我所拥有的(打印语句帮助我遵循代码):

import UIKit

class ViewController: UIViewController {

    var time = 0

    var timer = Timer()

    @IBOutlet weak var outputLabel: UILabel!

    @IBOutlet weak var start: UIButton!

    @IBOutlet weak var paused: UIButton!

    @IBAction func startButton(_ sender: UIButton) {

        startButtonPressed()

    }

    @IBAction func pausedButton(_ sender: UIButton) {

        pausedButtonPressed()

    }

    @IBOutlet weak var timerLabel: UILabel!

    func updateTimerLabel() {

        let hours = Int(self.time) / 3600
        let minutes = Int(self.time) / 60 % 60
        let seconds = Int(self.time) % 60 …
Run Code Online (Sandbox Code Playgroud)

background uilabel ios swift

1
推荐指数
1
解决办法
2816
查看次数

标签 统计

background ×1

ios ×1

swift ×1

uilabel ×1