2010-01-12 5 views
4

J'ai une sous-classe de UITableViewController qui fonctionne comme prévu. J'aimerais capturer des événements multitouch pour que toute la table fasse quelque chose avec eux. De la façon dont je le comprends, je devrais faire de la tableView du contrôleur une sous-classe de UITableView. Dans cette classe, je pouvais capturer les événements touchesMoved etc.Comment faire pour que UITableView (Controller) capture les événements multitouch?

Mais je comprends aussi que UITableView est une sous-classe de UIScrollView qui détourne tous les événements tactiles afin que je ne les vois jamais.

Alors, y a-t-il un moyen d'accéder à ces événements multitouch pour ma table? Plus précisément, j'aimerais mettre en œuvre quelque chose comme le pincement/zoom à deux doigts et le glissement horizontal d'un doigt.

Puisque ces événements tactiles sont tous passés aux cellules de tableau, peut-être que je devrais le faire au niveau de la cellule de table? La seule question est, est-ce compatible avec multitouch? (Afin que je puisse agréger des événements de différentes cellules comme événements multitouch et les traiter ...)

EDIT: essayé avec des cellules et a pu voir quelques événements horizontaux. Cependant, tous les événements verticaux sont complètement piratés par UIScrollView lorsque la table défile. Je ne voudrais pas le pirater s'il y a un moyen de rendre le UIScrollView un-détourner ces événements ...

Répondre

2

This solution semble bien fonctionner et se sent tout à fait propre. Je vais laisser la question ouverte pendant un certain temps, car si quelqu'un veut suggérer quelque chose d'autre, puis marquer cela comme une réponse à un moment donné si je n'obtiendrai rien de plus.

EDIT: cette réponse est obsolète, car la façon moderne de le faire, bien sûr, est UIGestureRecognizers.

Questions connexes