2012-04-17 1 views
19

を上書きします表の見方:UIPanGestureRecognizerは私が<code>UITableViewCell</code>をサブクラス化しましたし、そのクラスで私はパンジェスチャー認識器を適用するのUITableViewのスクロールビューのジェスチャー認識

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 

は、その後、私はそれを検出していますときだけ見ることhandlePanningメソッド内のログを配置します。

- (void)handlePanning:(UIPanGestureRecognizer *)sender { 
    NSLog(@"PAN"); 
} 

私の問題は、テーブルビュー内のセルのリストを縦方向にスクロールできないことと、どの方向にパンしてもhandlePanningが呼び出されるということです。

handlePanningは、水平パンだけが垂直でない場合にのみ呼び出されます。いくつかの指導を感謝します。

答えて

16

panningsデリゲートプロパティを設定しましたか?

panning.delegate = /* class name with the delegate method in it */; 

また、そのクラスをUIGestureRecognizerDelegateに準拠させる必要があります。

2

テーブルビューでジェスチャー認識器を追加します。それから、あなたは細胞のオブジェクトを得ることができます。そこから、セルの機能性を扱うことができます。各ジェスチャーについて、開始、変更、終了状態があります。したがって、開始位置を格納します。この点を利用し

CGPoint beginLocation = [gesture locationInView:tblView]; // touch begin state. 

    CGPoint endLocation = [gesture locationInView:tblView]; // touch end state. 

、あなたがこのindexpathからIndexPath

NSIndexPath *indexPath = [tblView indexPathForRowAtPoint:beginPoint]; 

を得ることができ、あなたがセルにアクセスすることができます。

  UITableViewCell *cell = [tableview cellForRowAtIndexPath : indexPath]; 

このCellオブジェクトを使用すると、それを処理できます。

+1

"indexPathForRowAtPointは、" - ありがとう、まさに私が –

-1

はあなたがNOにバウンスプロパティを設定しようとしたことがありますか?

+1

WOWを探しました!何?! ^。^ –

関連する問題