首页 > 解决方案 > 如何经常更新视图?

问题描述

这就是我尝试在代码中做的事情:

for i in 1...1000000000 {
    print(i)
    self.title = "\(i)"
}

在控制台上它会打印所有内容,但我在导航栏中看不到任何更新。为什么?

标签: iosswift

解决方案


实际上你可以看看CADisplayLink哪个基本上是一个与显示刷新同步的计时器。最基本的形式是这样的:

func createDisplayLink() {
    let displaylink = CADisplayLink(target: self, selector: #selector(step))
    displaylink.add(to: .current, forMode: .defaultRunLoopMode)
}

@objc func step(displaylink: CADisplayLink) {
    // Do the updates
}

注意:请注意,这step将被调用很多,主要是在每次屏幕更新时,在当前设备上为 60-120 fps。


推荐阅读