Обновление метки во время работы - PullRequest
0 голосов
/ 30 мая 2020

Если у вас есть простая процедура, подобная приведенной ниже, как вы можете обновить метку во время l oop? Когда я запускаю это, он обновляется только в конце, когда функция, в которой он находится, завершается.

for loop in 1...10 {
    doCalculation()

    resultLabel.text = String(result)

    sleep(1)
}

function doCalculation() {

    ... perform calculation updating variable result ...

}

Я тоже пробовал это, но это не исправляет.

for loop in 1...10 {
    doCalculation()

    DispatchQueue.main.async {
      self.resultLabel.text = String(self.result)
    }

    sleep(1)
}

1 Ответ

0 голосов
/ 30 мая 2020

Вы можете попробовать Timer:

Класс Swift Timer - это гибкий способ запланировать работу в будущем, один раз или несколько раз.

let timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
    print("Timer fired!")
}

Более подробное объяснение можно найти здесь или здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...