0

ユーザーがUIView.

UIEvent渡された にtouchesBegan:は、秒単位のタイミング データしかありません。これは、十分に正確ではありません。

したがって、論理的には、次のステップはtouchesBegan:usingmach_absolute_time()などと呼ばれる時間を記録することのようです。このアプローチはほとんどの場合うまく機能しますが、システムが非常に集中的な作業を行っている場合 (特にメイン スレッドで UI 作業を行っている場合)、touchesBeganループ内で少し押し戻されたように見えます。それでも起動しますが、遅くなります。

シグナル チェーンのある時点で使用して、より正確なデータを取得できる低レベルのソリューションがあることを期待しています (少なくとも秒単位ではなくミリ秒単位で)。

もちろん、これらの遅延を回避するために、UI スレッドをできるだけ効率的に実行し続けるようにしますが、特に古いデバイスでは、タイミングの小さな問題は避けられないようです。

4

1 に答える 1

1

UIEventのタイムスタンプはNSTimeIntervalです。これは、整数が秒全体に対応する浮動小数点型です...ただし、小数部分にはミリ秒未満の精度が含まれます。あなたにとってそれが十分に正確ではないことを確認しますか?

于 2012-11-19T07:25:46.047 に答える