2

同じ指で画面を 2 回タッチすることについて話している

私はこれをコーディングする権利があると思います。しかし、iPad で実際にダブルタップを生成することはほとんど不可能です。シングルタップとダブルタップの間の時間間隔を長くして、トリガーしやすくすることはできますか? ダブルタップを非常に速く行うと、2 回のシングルクリックとしてキャプチャされます。運が良ければダブルタップをトリガーできることもあります。UIButton アイテムのサブクラスをスクロールビューに配置します。

とにかく、UIButton の私のサブクラスは次を実装します。

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

 UITouch *touch = [[event allTouches] anyObject];

 NSLog(@"Touch count:%d",touch.tapCount);

 if (touch.tapCount == 1) 
 {
  //Do things for one touch
 }
 else if (touch.tapCount == 2) 
 {
  //Do things for double touch
 }
}

これはイベントをキャプチャしています。それが私のコードが正しいと思う理由です.UIEventに関係するものを見つけることができず、何回のタッチが発生するかを決定します. これと同じことを別の UIView でテストしたところ、期待どおりに機能しました。

4

3 に答える 3

2

あなたのコードは、ビュー内の2本の指を同時に検出していますが、指の高速シーケンス(ダブルタップ)ではありません。

ダブルタップを検出する場合、最も簡単な方法はジェスチャ認識機能を使用することです。サブラスのセットアップを行う場合は常に、次のコードを追加します。

UITapGestureRecognizer *singleFingerDoubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleFingerDoubleTap:)];
singleFingerDoubleTap.numberOfTouchesRequired = 1;
singleFingerDoubleTap.numberOfTapsRequired = 2;
[self addGestureRecognizer:singleFingerDTap];
[singleFingerDTap release];

そして、ダブルタップを渡すメソッドを実装します。

-(void)handleSingleFingerDoubleTap:(id)sender {
  //Do stuff
}
于 2010-09-09T19:50:56.093 に答える
0

この投稿には、私が正しいと思う答えの大まかなスケッチがあります: UIButton のダブルタップ

于 2010-11-16T04:26:20.580 に答える
0

あなたは電話していません[super touchesBegan:touches withEvent:event]

于 2010-09-09T19:57:30.720 に答える