1

私がやりたいのは、ボタンが押された時間を記録することです。これらの時間はすべて配列に格納されます。次に、プログラムは配列全体を実行し、時間値を調べて、再生中の特定の時間におけるボタンの状態を強調表示します。

うまくいけば、これは理にかなっていますが、これを行う最良の方法は何ですか?! 前もって感謝します。

- - - - - - - - - もっと詳しく - - - - - - - - -

私の頭に浮かんだ最初のことは...「ああ、タイムスタンプ」でしたが、ドキュメントを調べて、段落のどこかにあるタイムスタンプページの特定のセクションで、次のように述べています:

....イベントが発生した正確な時間を決定するために使用するのではなく、別の加速イベントのタイムスタンプと比較して、イベント間の経過時間を決定する必要があります....

これは素晴らしいことではありません..記録中にユーザーが実際にボタンを押した正確な時間にボタンを強調表示する再生に関しては、正確ではないと想定しているためです。私が何を使用し、何をすべきか教えてください。

4

2 に答える 2

3

プロパティは、タッチが実際に発生したときの-[UIEvent timestamp]最も正確な表現になります。CFAbsoluteTimeGetCurrent()またはUNIX関数を使用するtime()と、イベントが実際に発生したときではなく、関数が呼び出された現在の時刻が取得されます(これは少し前になります)。

于 2009-06-15T03:11:34.633 に答える
1

を使用して、2001 年 1 月 1 日 00:00:00 GMT からCFAbsoluteTimeGetCurrent()の秒数 (値として、小数秒が存在します) で表される現在の時刻を取得できます。double

したがって、CFAbsoluteTimeGetCurrent()アプリの起動時に の値を記録し、ボタンが押されるたびにその値を記録する必要があります。次に、ボタンが押された時間からアプリの起動時間を差し引くと、アプリが起動してからボタンが押された秒数が得られます。その後、その時間デルタを取り、再生が開始された時間に追加することで、後でボタンの押下を再生できます。

于 2009-06-13T15:34:22.430 に答える