nous avons le code suivant snippetsMlle un seul robinet au hasard
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
NSUInteger numberTaps = [touch tapCount];
// Tapping
if (numberTaps > 0) {
// do something
}
...
Le code ci-dessus détecte fondamentalement une simple pression sur une petite image (largeur = 18 et hauteur = 36). Cela fonctionne 90% du temps en détectant un seul robinet.
Mais il manque parfois (aléatoirement). Je dois taper plusieurs fois avant de prendre le robinet.
Qu'est-ce que j'ai fait de mal ou de manquer afin que je puisse détecter de manière cohérente le seul robinet 100%?
Comment savez-vous ce n'est pas seulement la nature du matériel? – Pyrolistical
Bon point. Mais il semble que d'autres applications fonctionnent bien. – pion
** Pour déboguer ** ce problème, vous pouvez remplacer '- [UIApplication sendEvent:]' dans une catégorie sur 'UIApplication' appelant l'implémentation réelle en utilisant [l'implémentation superséquente] de Matt Gallagher (http://www.cocoawithlove.com/ 2008/03/supersequent-implementation.html). Cela vous permettra de récupérer l'événement créé lorsque vous taperez sur l'écran et obtiendrez toutes les touches associées (via '- [UIEvent allTouches]'). Depuis l'UITouch (il y en a probablement un dans le 'NSSet' renvoyé par' allTouches'), vous pouvez voir que le contact était activé en utilisant '- [UITouch view]'. –