2010-11-12 4 views
1

J'ai un bouton, lorsqu'il est maintenu enfoncé, il doit s'arrêter lorsqu'il est relâché. Je sais que je pourrais écrire deux méthodes, une pour commencer et une pour arrêter le mouvement, je me demandais si dans une méthode, je pouvais détecter les deux sur la base de Touch Up Outside vs Touch Up Inside. Si vous sélectionnez Retoucher à l'extérieur, effectuez cette opération si À l'intérieur, effectuez cette opération.ObjC Bouton relâché Retouche Extérieur

-(IBAction) startMotion: (id)sender { 
    NSLog(@"Forward or back button is being pressed."); 
    UIButton * buttonName = (UIButton *) sender; 
     NSLog(@"Button Name: %@", buttonName.currentTitle); 
} 

Répondre

2

Oui, vous pouvez écrire une méthode et lier le IBAction "touchUpInside" et "touchUpOutside" à la même fonction membre IBAction - via Interface Builder. Le seul inconvénient serait que vous pas être en mesure de dire si c'était une retouche à l'intérieur ou à l'extérieur quand il a été appelé. (Il ne ressemble pas à ce qui compte pour vous.)

Si ce dernier était un problème, vous pouvez alternativement mettre en œuvre des méthodes indépendantes et touchUpInside touchUpOutside qui à son tour appeler la méthode même - une troisième mesure un - dans lequel vous pouvez passer un drapeau "inside" ou "outside" depuis le gestionnaire IBAction approprié.

1

Retoucher à l'extérieur ne vous donnera pas la fonctionnalité que vous recherchez, je ne pense pas. La personne devrait bouger son doigt à l'extérieur des limites du bouton et ensuite soulever le doigt. Pourquoi ne pas utiliser le toucher des roues pour lancer le mouvement et retoucher à l'intérieur pour l'arrêter?

Questions connexes