swift 获取帧率
时间: 2023-06-21 17:24:37 浏览: 221
在Swift中,可以通过CADisplayLink来获取当前屏幕的帧率。具体的实现可以参考下面的代码:
```swift
import UIKit
class ViewController: UIViewController {
var displayLink: CADisplayLink?
var lastTimeStamp: CFTimeInterval = 0
var frameCount = 0
override func viewDidLoad() {
super.viewDidLoad()
displayLink = CADisplayLink(target: self, selector: #selector(displayLinkTick))
displayLink?.add(to: .current, forMode: .defaultRunLoopMode)
}
@objc func displayLinkTick() {
if lastTimeStamp == 0 {
lastTimeStamp = displayLink!.timestamp
return
}
frameCount += 1
let delta = displayLink!.timestamp - lastTimeStamp
if delta < 1 {
return
}
let fps = Double(frameCount) / delta
print("FPS: \(fps)")
frameCount = 0
lastTimeStamp = displayLink!.timestamp
}
}
```
在这个例子中,我们在viewDidLoad()方法中创建了一个CADisplayLink,并将其添加到主线程的RunLoop中,然后在displayLinkTick()方法中计算帧率。具体来说,我们记录了上一帧的时间戳和总帧数,然后每次屏幕刷新时计算帧率并打印输出。通过这种方式,我们可以很方便地获取当前屏幕的帧率。
阅读全文