2009-09-07 7 views
1

J'ai un contrôleur de vue, et un UIImageView comme sous-vue. Cette UIImageView a également une sous-vue de ce même type.Les événements tactiles n'atteignent pas les méthodes tactiles?

J'ai:

self.userInteractionEnabled = YES; 

ensemble pour chacun. Mon code touchEnded fonctionnait. Une idée de ce que cela causerait? Aucune touche n'atteint même les événements touches. Je ne comprends pas?

Toute aide appréciée.

Merci :) //

Répondre

0

Je viens de trouver cette solution de saimhann2002 qui avait un problème similaire.

Merci pour la réponse. J'ai été capable de résoudre le problème maintenant. Le problème était que j'ajoutais la sous-vue à MKMapView plutôt qu'à la vue de ViewController. Je ne sais pas pourquoi c'est un problème. Si vous le faites, je serais intéressé d'entendre. L'ajout de la vue en tant que sous-vue à la vue du ViewController a tout corrigé, la vue acceptant maintenant les touches, même si sa couleur est UIColor clearColor.

Cela fonctionne!

1

On dirait que vous êtes allé tout le chemin jusqu'à la chaîne et la self.userInteractionEnabled vérifié tout le chemin jusqu'au sommet, à droite? Ok, vérifiez maintenant si une vue a exclusiveTouch définie sur OUI. De plus, si vous appelez resignFirstResponder sur la vue parente, au lieu d'un champ UIText, vous renoncez aux événements.

Enfin, beginIgnoringInteractionEvents, peut également provoquer cela.

+0

Okay, enquêtait. Ma hiérarchie est VC avec sous-vue UIImageView. Puis une autre sous-vue de ce UISubView qui est aussi une sous-classe de UIImageView. J'ai eu des événements fonctionnant dans la sous-vue à la vue du VC. Mais dans la sous-vue à cela, non. Ni dans la sous-classe s'il s'agit d'une sous-vue de la première sous-vue. Donc, VC.view et une sous-vue qui obtiennent des événements tactiles. Toujours essayer de comprendre ce qui pourrait bloquer les autres sous-vues? J'ai même fait une classe fictive avec essentiellement rien à part une image et un gestionnaire tactile. Pas de joie. ? – Spanky

+0

Oui, d'autres tests montrent que seule la vue parent peut gérer les événements tactiles. Les sous-vues ne sont pas en mesure de? J'ai fait en sorte que rien ne soit réglé sur exclusiveTouch. J'ai aussi regardé resignFirstResponder, non utilisé et ni beginIgnoringInteractionEvents. Et le userInteractionEnabled a été défini à OUI tout en haut. C'est presque comme si la vue parent était devenue la vue la plus en avant et bloquait tout le reste de recevoir des événements dans l'ordre z? Y aurait-il un paramètre XCode qui pourrait causer cela? – Spanky

+0

D'accord, cela devient encore plus bizarre? Je viens de créer un tout nouveau projet basé sur la vue. Dans ce projet, j'ai ajouté un fichier, un UIImageView. En cela, j'étais capable de gérer les événements tactiles. J'ai ensuite créé une nouvelle classe. Encore une sous-classe de UIImageView avec essentiellement aucune autre implémentation dedans. Et j'ai ajouté cela comme une sous-vue à la vue des parents. Maintenant, le parent peut gérer les contacts, mais l'enfant ne peut pas. Je supprime tous les gestionnaires d'événements tactiles du parent, mais je le laisse activé et non exclusif. Je prends ensuite le code du parent et le colle dans l'enfant. Toujours pas de joie. – Spanky

Questions connexes