現在、次のセットアップがあります。
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を決定する方法がわかりません..
何か案は?