/ / Comment créer des boutons qui s'activent lorsque l'utilisateur glisse son doigt sur eux sur iPhone - iphone, bouton, interface-builder, slide, ibaction

Comment créer des boutons qui sont activés lorsque l'utilisateur glisse son doigt dessus sur iPhone - iPhone, bouton, interface de construction, diapositive, ibaction

J'écris une application iPhone qui a uninterface de type piano. L'utilisateur est présenté avec un certain nombre de gros boutons sans espaces entre eux. Pour le moment, j'ai créé IBActions dans Interface Builder en faisant glisser le bouton droit de la souris sur les boutons dans le fichier d'interface du contrôleur de vue approprié. Cela crée une méthode:

-(IBAction) buttonTouchDown: (id) sender

Dans le corps de cette fonction, j'ai inclus le code qui répond à cette action.

Cela fonctionne quand j'appuie sur le bouton, mais quand jefaites glisser mon doigt sur un certain nombre de boutons, seul le premier est activé. Lorsque je fais glisser mon doigt sur les boutons, j'ai besoin que le premier soit activé lorsque mon doigt est dessus. Ensuite, lorsque mon doigt quitte le bouton et entre dans le deuxième bouton, j'ai besoin du second pour l'activer et du premier pour le désactiver.

Tout avis serait grandement apprécié!

Réponses:

1 pour la réponse № 1

Vous pouvez également utiliser la fonction touchesBegan. Avec cette fonction, vous pouvez facilement dire ce qui se passerait si un bouton (ou plusieurs boutons) était pressé / touché.

Le code devrait ressembler à:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event touchesForView:self.view] anyObject];

if(touch == YourButton){
//so some stuff after touching the button

}
}

N'oubliez pas de décare le bouton dans votre .h comme IBOutlet UIButton * MyButton;


0 pour la réponse № 2

Je n'ai pas essayé, mais essayez d'ajouter le nouveaua ajouté Gesture Recognizer à votre bouton. Sélectionnez la direction de la glissière (droite / gauche) et implémentez la fonction [bouton setEnabled] en conséquence. Quelque chose comme lorsque le balayage se produit, vous définissez le bouton pour qu'il soit activé et tous les autres boutons pour le désactiver.

Paix


0 pour la réponse № 3

Les boutons ne sont pas la voie à suivre. Les UIViews ont différentes méthodes tactiles qui fonctionneraient mieux. Ou utilisez un identificateur de gestes personnalisé.