0

現在、次のセットアップがあります。

self.view に UIPanGestureRecognizer を持つ RootVC。次に、RootVC には子 UITableViewController があるため、UITableViewController.view は self.view のサブビューです。

UITableViewController のセルには、横にスワイプできるジェスチャ認識機能もあります。これは、UITableViewController 自体がルート ビュー コントローラーである場合に完全に機能します。

私の問題は、特定のジェスチャを self.view ジェスチャ認識エンジンからテーブル セルに渡そうとしていることです。私は代理人を試しました:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer

以下に送信したいジェスチャを正しく識別し、そのインスタンスで NO を返すことができますが、サブビューに渡す代わりにジェスチャをキャンセルするようです。

私はちょうど電話できることを知っています

[self.view.subviews[0] gestureShouldBegin:gestureRecognizer];

しかし、それはテーブルビューのセルであるため、ジェスチャを送信する必要があるセルも判断できません。

みたいなことをずっと考えていました

[[self.childViewControllers[0] cellForRowAtIndexPath:indexPath] gestureShouldBegin:gestureRecognizer];

うまくいきますが、正しいindexPathを決定する方法がわかりません..

何か案は?

4

1 に答える 1

0

(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point を見てください。

まず、ジェスチャのポイントを tableView の座標に変換する必要があります。

于 2013-07-11T19:53:56.980 に答える