UISwith: Evenement

yafouyafou Membre
19:40 modifié dans API UIKit #1
Bonjour,

J'ai plusieurs swith (on/off) dans ma view.
je veux qu'il fonctionne comme des radio boutton.

Je met en ON, le reste se met en Off.
en regardant la doc, je n'ai pas trouvé d'evenemnt pour ce control.

Merci.

Réponses

  • CeetixCeetix Membre
    19:40 modifié #2
    Si tu tapes UISwitch dans la doc apple dans xcode tu as tout ce qu'il te faut.
    En particulier ça :

    - (void)setOn:(BOOL)on animated:(BOOL)animated
  • yafouyafou Membre
    19:40 modifié #3
    dans 1237292577:

    Si tu tapes UISwitch dans la doc apple dans xcode tu as tout ce qu'il te faut.
    En particulier ça :

    - (void)setOn:(BOOL)on animated:(BOOL)animated


    Je ne parle pas de la méthode qui modifie le status du UISwith.
    Je parle de l'évenement qui se declenche aprés la modifcation du status (mettre le reste des swith à  false comme radio boutton).
  • CeetixCeetix Membre
    19:40 modifié #4
    Ton poblème c'est bien :

    plusieurs UISwitch sur ta UIView.
    Dès que tu changes l'état de l'un tu désires mettre les autres à  l'état contraire?
  • yafouyafou Membre
    19:40 modifié #5
    dans 1237293824:

    Ton poblème c'est bien :

    plusieurs UISwitch sur ta UIView.
    Dès que tu changes l'état de l'un tu désires mettre les autres à  l'état contraire?


    Exacte
  • CeetixCeetix Membre
    19:40 modifié #6
    Eh bien c'est ce que je te dis ...
    Des que tu entres dans ton action d'un switch c'est a dire que tu executes le ON ou OFF.
    donc selon ton etat tu changes ceux des autres en faisant :

    [unAutreSwitch setOn:YES animated:YES]
    le premier YES met ton autre switch à  ON et animated c'est juste visuel, pour un effet de translation ou pas.
  • yafouyafou Membre
    mars 2009 modifié #7
    qu'elle action
    je n'ai pas d'action !
  • yafouyafou Membre
    19:40 modifié #8
    dans 1237294575:

    Eh bien c'est ce que je te dis ...
    Des que tu entres dans ton action d'un switch c'est a dire que tu executes le ON ou OFF.
    donc selon ton etat tu changes ceux des autres en faisant :

    [unAutreSwitch setOn:YES animated:YES]
    le premier YES met ton autre switch à  ON et animated c'est juste visuel, pour un effet de translation ou pas.

    Mon Switch n'est relié à  aucune action.
    Lorsque je clique sur ce swith, je doit capter cet évenement et puis mettre les autre à  off avec la fonction que tu as cité ...!!!
  • CeetixCeetix Membre
    19:40 modifié #9
    Bah moi j'aurai mis une action mon chaque switch et cette action est juste faite pour le changement d'état justement...
    Enfin peut-etre que les autres pourront te donner la solution que tu désires.
  • yafouyafou Membre
    19:40 modifié #10
    dans 1237295708:

    Bah moi j'aurai mis une action mon chaque switch et cette action est juste faite pour le changement d'état justement...
    Enfin peut-etre que les autres pourront te donner la solution que tu désires.


    Oui, oui, Action: ValueChanged.

    Merci
  • AliGatorAliGator Membre, Modérateur
    19:40 modifié #11
    Tu peux même relier tous tes UISwitch à  une seule et même action, et comme tu récupères le "sender" en paramètre de cette IBAction, donc le UISwitch qui aura déclenché l'action en conséquence tu pourras agir selon tout ça. Par exemple si sender.value est à  "ON", alors il suffit de boucler sur tous tes UISwitch pour les passer à  OFF, sauf si l'UISwich de ta boucle est ==sender.
    S'il était à  ON et qu'on essaye de le passer à  OFF, tu te contentes de le remettre à  ON...

    Ou même mieux, tu gardes une variable d'instance lastSelectedSwitch qui pointe sur le seul et unique switch actuellement à  ON, et dans ton IBAction tu mets lastSelectedSwitch.value à  OFF et sender.value à  ON. Ca marchera pour les 2 cas comme ça... et ne te nécessitera que 3 lignes de code.
Connectez-vous ou Inscrivez-vous pour répondre.