touchesMoved
画面の特定の領域内でのユーザーのタッチを検出して応答するために、座標系を使用しています。たとえば、仮想キーボードがあり、ユーザーがキーをスワイプすると、座標が読み取られて応答します。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch * touch = [[event allTouches] anyObject];
CGPoint point = [touch locationInView:touch.view];
if(point.y < 333 && point.y > 166 && point.x < 90 && point.x > 20)
{
//do something
}
}
...しかし、問題は、ユーザーがキーまたはキー間の境界をゆっくりとドラッグすると、メソッドが連続して数回トリガーされ、ピアノのキー サウンドがスタッターで再生されることです。
どうすればこの吃音を防ぐことができますか? 連続する各 if ステートメントのトリガーの間に 0.25 秒の最小遅延を設定すると役立つと思います。また、この遅延は特定の if ステートメントに対してのみ発生します。ユーザーがキーをすばやくドラッグして、別のキーの if ステートメントを必要なだけすばやくトリガーできるようにしたいと考えています。
このようなコードを書く方法を知っている人はいますか?