2009-08-21 5 views
0

C'est difficile. J'ai un petit bouton sur un très gros. Quand on appuie sur le petit bouton de ce gros bouton, le petit bouton fait quelque chose. Mais le grand ne fait rien. Bien sûr. Mais maintenant je veux que le gros bouton fasse aussi quelque chose, peu importe si le petit bouton a été tapoté ou non. Le petit bouton doit donc transférer tous les événements tactiles vers ce gros bouton. Quelle serait la façon la plus simple de le faire?Comment un UIControl peut-il transmettre tous les événements tactiles à l'objet suivant dans la chaîne du répondeur?

Je connais UIView, mais les UIControl ont leurs propres méthodes de manipulation tactile différentes de celles d'UIView. En UIView qui pourrait ressembler un peu comme ceci:

[self.nextResponder touchesBegan:touches withEvent:event]; 

Répondre

0

pouvez jeter un oeil à this post qui montre des façons de synthétiser toucher les événements. Il a cessé de fonctionner pendant un moment, cependant. En le revoyant tout à l'heure, il semble qu'il l'ait mis à jour pour le support de la version 3.0, donc cela pourrait fonctionner pour vous. Une mise en garde est qu'il pourrait ne pas être légitime pour une application d'expédition.

Un moyen plus facile est de casser la méthode qui fait le travail (appelons-le bigButtonWork) lorsque le gros bouton est exploité et le rendre public. Ensuite, le gestionnaire de gros bouton appelle simplement cette routine. Lorsque le petit bouton est appuyé, vous pouvez choisir à l'intérieur de son gestionnaire de faire sa propre chose ou appeler le bigButtonWork à la place.

Mais j'imagine que vous voulez qu'il simule le gros bouton en train d'être poussé (avec les hautes lumières et les changements d'état) de sorte que vous deviez aller sur la route des événements synthétisés.

0

vous pouvez mettre en œuvre un protocole de laisser le gros bouton recevoir des messages du petit bouton, Bien que ce que je ferais est d'avoir les deux boutons dans un UIViewController, ont le petit bouton dire Teh UIViewController qu'il a été cliqué (soit par sélecteur ou protocole), puis le UIViewController peut mettre à jour le gros bouton en conséquence .... plus sur les protocoles ici http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html

Questions connexes