/ / Passando eventos UIGestureRecognizer para filho TableViewCells - ios, object-c, uitableview, uiviewcontroller, uigesturerecognizer

Transmitindo eventos UIGestureRecognizer para o filho TableViewCells - ios, objective-c, uitableview, uiviewcontroller, uigesturerecognizer

Atualmente tenho uma configuração de:

Um RootVC, com um UIPanGestureRecognizer em self.view. Em seguida, o RootVC tem um filho UITableViewController e, portanto, UITableViewController.view é uma subvisualização de self.view.

As células no UITableViewController também possuem reconhecedores de gestos que permitem que sejam deslocados lateralmente. Isso funciona perfeitamente quando o UITableViewController é em si o controlador de visualização raiz.

Meu problema é que estou tentando passar um gesto específico do reconhecedor de gesto self.view para as células da tabela. Eu já tentei delegados:

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

e

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer

Eu posso identificar corretamente os gestos que eu quero enviar abaixo e retornar NO nessa instância, mas isso parece cancelar o gesto em vez de passá-lo para as subvisualizações.

Eu sei que eu poderia apenas ligar

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

Mas como são as células de exibição de tabela, não consigo determinar qual célula o gesto deve ser enviado também.

Eu estive pensando em algo como

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

Funcionaria mas eu não sei como determinar o indexPath correto.

Alguma ideia?

Respostas:

0 para resposta № 1

Olhe para (NSIndexPath *) ponto indexPathForRowAtPoint: (CGPoint)

Você precisará traduzir o ponto do gesto para as coordenadas da tableView primeiro.