Comment puis-je lier par programme une UIView ou UIImageView avec un événement comme “touch up inside”?

Interface Builder ne me permet de brancher jusqu'à de tels événements pour un bouton. Mais comme dans le HTML, je veux juste n'ai un vide UIImageView où, dès que l'utilisateur appuie - une méthode est invoquée. J'espère qu'il y aura quelques frais par programmation façon de le faire, je ne sais pas.

Mise à JOUR:

De mon point de Vue Contrôleur qui crée la UIImageView j'ai essayé de faire ceci:

SEL actionSelector = @selector(doSomethingWhenImageIsTouched:);
[self.myUIImageView addTarget:nil action:actionSelector forControlEvents:UIControlEventTouchUpInside];

Le compilateur me donne un avertissement, que UIImageView ne peut pas répondre à addTarget:... que dois-je faire pour qu'il fonctionne avec une UIImageView. Je vois dans les docs que UIImageView n'hérite pas de UIControl, mais addTarget: fait partie de UIControl.

Mise à JOUR:

J'ai fini par créer un UIButton après la création de la UIImageView. Puis j'ai mis le cadre de ce bouton à l'image de la UIImageView, et l'alpha à 0,1 f. Pour une raison quelconque, il ne fonctionnera pas si l'alpha est de 0,0 f. Et puis, je n'ai que cool addTarget: chose...

Il serait plus approprié d'appeler le touchesBegan ou touchesEnded méthodes et vérifier le touché de vue là.
C'est ce que j'ai fait récemment. Fonctionne comme un charme. Peut-être que vous pourriez faire une réponse?
Concernant l'alpha de 0,1, hitTest:withEvent: ignore les points de vue qui sont cachés, avez désactivé l'interaction de l'utilisateur ou d'avoir un alpha de moins de 0,1 (voir hitTest sous UIView classe de référence)

OriginalL'auteur Thanks | 2009-05-26