J'ai fait des recherches sur les différentes méthodes de programmation des réponses aux événements tactiles pour une application que je suis en train de créer, et je suis un peu perdu par ce que je lis.
Pour autant que je sache, il existe deux méthodes généralement acceptées pour répondre au toucher dans iOS : la reconnaissance des gestes et la reconnaissance du toucher.
Quand est-il approprié d'utiliser l'un ou l'autre ?
Spécifiquement pour ce que je suis en train de construire* :
J'écris un contrôleur pour une vue qui doit placer des éléments (UIImageViews) sur l'écran à l'endroit où l'utilisateur les touche et aussi les déplacer lorsque l'utilisateur les fait glisser. Le contrôleur communique avec un modèle séparé et j'ai donc besoin d'un contrôle granulaire pour savoir quand envoyer des messages au modèle lors des événements tactiles.
Le modèle doit savoir à quel endroit l'utilisateur touche l'écran pour la première fois (le multitouch n'est pas activé) et à quel endroit il le soulève. J'ai besoin d'interroger le modèle lorsque l'utilisateur touche l'écran pour savoir si l'utilisateur veut modifier l'emplacement d'une image ou en créer une nouvelle, et j'ai besoin d'envoyer un message au modèle sur l'endroit où l'utilisateur quitte l'écran pour que le modèle puisse être mis à jour. Au cours d'un événement de glisser, je dois également envoyer des requêtes constantes au modèle pour déterminer si l'emplacement où l'utilisateur plane à un moment donné est valide.
Au début, j'ai pensé que je pourrais utiliser un dispositif de reconnaissance des gestes de la main pour faire le travail, mais en y regardant de plus près, je n'ai pas trouvé le moyen de configurer des appels de fonctions personnalisées lors des événements de toucher, de glisser et de décoller (s'il y a un moyen, ce serait bien de le savoir). J'ai trouvé les méthodes UIResponder, mais sont-elles encore à utiliser, ou est-il préférable de travailler avec les reconnaissances de gestes dans iOS6 ?
* Le code n'est pas inclus car la portée de cette question est assez large et je ne veux pas distraire les gens avec des détails inutiles.