2009-05-31 4 views
5

Je suis en train d'implémenter des gestes de balayage dans mon contrôle customtableviewcell et j'ai donc besoin d'implémenter l'événement touchesBegan. Je suis en mesure d'implémenter les balayages, mais malheureusement, parce que touchesBegan est géré dans la cellule personnalisée, je ne reçois pas un message didSelectRowAtIndexPath sur le tablecontroller. Si la méthode touchesBegan est désactivée, cela fonctionne.Gestion des touches touchBegan dans UITableViewCell Désactivé didSelectRowAtIndexPath

Comment cela devrait-il être géré? Je veux que l'événement tactile éclate la chaîne du répondeur après le traitement de touchesBegan. Comment puis-je faire ceci?

Merci.

Répondre

12

I "suis sûr que vous pouvez voir que ce qui se passe parce que vous surchargez une méthode qui a été défini précédemment sur une super classe. Et en faisant des moyens pour que les événements ne sont pas appelés.

Avez-vous essayé appelant [super touchesBegan]? ce genre de choses est traitée façon tout en amont. et vous pouvez remplacer le geste de balayage.

ou une autre option est d'appeler le délégué lorsque le contact est détecté dans votre propre

méthode touches. quelque chose comme (vous aurez probablement aussi des implémentations des autres événements tactiles)

-(void) touchesBegan 
{ 
//logic to detect tap only. 
[tablecell.delegate didSelectRowAtIndexPath:(some way to determin touched row)] 
} 
+6

[super touchesBegan] est probablement la bonne façon de le faire. – amattn

+0

Merci, cela a fonctionné. – Mugunth

+0

pas de problème, quelle méthode avez-vous utilisé? J'apprécierais également les points de réponse – Bluephlame

Questions connexes