2009-08-08 7 views
0

タップの量を画面上の任意の場所に取得したい。タッチの量

-(void) touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event 
{ 
    DebugLog(@"touches: %d", [touches count]); 
} 

この方法は、アクティブビューコントローラに実装されている:

はここに私のコードです。

しかし、複数のタップは検出されません。タップとして表示されます。

タップの量はどのようにして取得できますか?

ありがとうございました。

答えて

3

問題は、そのメソッドでどのように接触が報告されるかにあります。そのメソッドのNSSet touchesには、1つ以上のUITouchのインスタンスが含まれており、各UITouchインスタンスは、画面上の1本の指からのタッチイベントを表します。したがって、ユーザーが2本の指で画面に触れると、touchesセットには2つのUITouchオブジェクトが含まれます。

単一のUITouchが複数のUITouchと見なされることなく、複数のタップを持つ可能性があるという問題があります。デバイスがほぼ同じ位置で2回のタップ(重大な動きなしに指を押し下げた状態)を検出すると、複数のタップを含む1つのUITouchにそれらを結合します。この場合、UITouchのtapCountセレクタを使用して、タッチしたタップの数を把握します。詳細情報については

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    NSLog(@"Got %u touches", [touches count]); 
    for(UITouch *touch in touches) { 
     NSLog(@"Touch had %u taps", [touch tapCount]); 
    } 
}

:あなたは、単にインターフェイスBuilderのビューを経由して "複数のタッチを" 有効にする必要がありよう

1

は上インスペクタ属性サウンズ使用しているUI要素またはビュー。

いつも私はこのことを忘れて、2時間後にそのボックスをチェックしなければならないまで、あなたと同じ問題に遭遇します。