2011-09-13 12 views
0

UITableViewでカバーされていない部分だけでなく、画面のすべての部分で発生するジェスチャを処理できるようにしたい。テーブルのある場所でタッチの一部が認識されない

これは可能ですか?そしてもしそうなら、どうすればそれを稼働させることができますか?

ここで私はタッチデータを収集するためのコードです。私はこの行を持っていますが、

UITouch *t = [touches anyObject]; 

私はすべての接触を収集することができます。

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

UITouch *t = [touches anyObject]; 

CGPoint currentPosition = [t locationInView:self.view]; 

CGFloat positionDelta = currentPosition.x-_originalTouchPosition.x; 

if (positionDelta > 50.0) 
{ 
    NSLog(@"X"); 
} 
else if (positionDelta < -50.0) 
{ 
    NSLog(@"Y"); 
} 
else if (positionDelta > 1) 
{ 
    NSLog(@"Z"); 
} 
else 
{ 
    return; 
} 
} 

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

UITouch *t = [touches anyObject]; 
_originalTouchPosition = [t locationInView:self.view]; 
NSLog(@"touches began"); 
} 

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
NSLog(@"tocuhes ended"); 
} 

多くのおかげで、 -code

+0

あなたはUITapGestureRecognizerを使用して、ビューに追加し、そうでない編集可能なコンポーネントは、(UITextFieldのと、それらを好きではない)すべてのイベント(偶数のUITableView)を受け取りますが、悪い部分はそれがそれらのネイティブのイベントをロックすることであることができますコンポーネント。したがって、右のUI要素にタップイベントを渡してみてください。私はそれが完全な解決策ではないことを知っていますが、おそらくあなたがこれがあなたのために働くかどうかを見ることができます。 –

答えて

0

サブクラスあなたのUITableViewCellとそのサブクラスで-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event方法を適用し、その後、あなたはの通常の機能を持っているだけでなく、あなたのUITableView上のタッチを検出することができます利用可能なUITableView。

関連する問題