0

私の見解では、すべての「touches*」メソッドをオーバーライドして、ユーザーが画面に描画できるようにしています。場所を記録しています。さらに、シングルタップとダブルタップを検出するために、ビューに2つのジェスチャ認識機能があります。ここで指を少しだけ十分に短く動かすと、小さな「描く」ジェスチャーが記録されます。ただし、指を上げると、追加のタップ ジェスチャがトリガーされます。試行錯誤により、最小時間と移動のしきい値を見つけることができるかもしれませんが、もっとスマートな方法があると確信していますか? タップジェスチャがトリガーされないと仮定するために、どれだけの動きや保存が行われたかを知る必要があります。

4

1 に答える 1

0

タップジェスチャを回避できます。その代わりに、タッチ イベント自体でタップを認識できます。

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event {
    if(touches.count == 1)
    {  

       if([[touches anyObject] tapCount] == 1)
       {
       // Do the action here for single tap
       }

       else if([[touches anyObject] tapCount] == 2)
       {
       // Do the action here for double tap
       }
    }
}

また、ユーザーが画面上で指を動かしたかどうかを確認するために、グローバル bool 変数を設定する必要があります。

BOOL _isMoved;

そして、タッチ移動イベントでTRUEにします

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {

    _isMoved = YES;
}

トラックを録音する前に、このフラグが TRUE かどうかを確認しますか? また、トラックを保存した後、フラグを FALSE にすることを忘れないでください

これがあなたを助けることを願っています:)

于 2013-05-04T18:32:11.240 に答える