如何为屏幕上显示的图像获取准确的持续时间计时器?

时间:2018-10-29 00:33:02

标签: ios image nstimeinterval

我正在尝试为仅在短时间内显示在屏幕上的图像获取准确的时间间隔。

比方说,我希望图像在屏幕上显示约150ms,我知道大多数iOS设备具有可变的刷新率(通常在20-60Hz之间),因此这意味着不可能达到150ms完美的标记。我想知道的是,有没有一种方法可以测量所显示图像的确切时间间隔?理想情况下,我希望此精度在几毫秒内。

在此先感谢您能获得的任何帮助!

2 个答案:

答案 0 :(得分:1)

如果您使用的是Metal,则可以添加一个“呈现的处理程序”块,以在呈现可绘制对象时显示(在屏幕上显示)。使用-addPresentedHandler:的{​​{1}}方法可以做到这一点。在该块中,您可以查询drawable的MTLDrawable属性。

如果使用该图像先显示图像然后清除图像(显示为黑色或白色或其他任何颜色),则可以比较两个显示的时间值以确定显示图像的时间。

此外,您可以使用presentedTime的{​​{1}}(或根据您的需要,-presentDrawable:atTime:)方法安排在特定时间显示可绘制对象。 / p>

答案 1 :(得分:0)

您应该看看使用CADisplayLink。这是一个与屏幕刷新周期同步的计时器。