事件发生的确切时间

时间:2009-06-13 15:29:40

标签: iphone timestamp uibutton highlight

我想要做的是记录按下按钮的时间。所有这些时间都将存储在一个数组中。然后程序将运行数组并查看时间值,然后在播放期间突出显示特定时间的按钮状态。

希望这是有道理的,最好的办法是什么?!提前谢谢。

------------------ MORE DETAIL ------------------

我想到的第一件事是......'啊哈,时间戳',但随后查看文档,在时间戳页面的某个部分,它在段落的某处说明了以下内容:

....您不应该使用它来确定事件发生的确切时间,而应该将其与另一个加速事件的时间戳进行比较,以确定事件之间经过的时间....

这不是很好..因为我假设在用户在录制期间实际按下它们的确切时间播放突出显示按钮时不准确。 请告诉我应该使用和做的事情。

2 个答案:

答案 0 :(得分:3)

-[UIEvent timestamp]属性将是触摸实际发生时的最准确表示。如果您使用CFAbsoluteTimeGetCurrent()或UNIX time()函数,您将获得当前时间调用函数的时间,而不是事件实际发生时(将在某个时间之前)。

答案 1 :(得分:1)

您可以使用CFAbsoluteTimeGetCurrent()获取当前时间,表示为秒数(作为double值,因此小数秒将在那里)自2001年1月1日00:00:00 GMT

因此,您应该在应用程序启动时的某个时刻记录CFAbsoluteTimeGetCurrent()的值,然后在每次按下按钮时记录其值。然后,通过从按下按钮的时间减去应用程序开始的时间,可以获得自应用程序启动以来按下按钮的秒数。然后,您可以稍后播放按钮按下该时间增量并将其添加到播放开始的时间。