我正在尝试使用Timer每200毫秒更新我的界面。它可以工作两到三秒钟,然后很快就会阻塞。
timer?.invalidate()
timer = nil
timer = Timer.scheduledTimer(withTimeInterval: 0.2, repeats: true, block: { (t) in
// update interface
})
我也尝试过使用DispatchQueue.main和递归函数,但是它不能完美运行,iOS在两到三秒钟后阻止了它
func runRecursiveTimer() {
DispatchQueue.main.asyncAfter(deadline:.now() + 0.2,qos:.userInitiated){
// update interface
self.runRecursiveTimer()
}
}
我有10张图像,我想每200毫秒一次更改它们
以前使用的图像代码听起来似乎不是一个好主意,但这将使其始终具有最高的优先级。
DispatchQoS.QoSClass.userInteractive
与用户互动的任务在系统上具有最高优先级。将此类用于与用户交互或主动更新应用程序用户界面的任务或队列。例如,将其用于动画类或交互式跟踪事件。
DispatchQueue.main.asyncAfter(deadline:.now() + 0.2,qos:.userInteractive){
// update interface
self.runRecursiveTimer()
}