107 votes

IOS - Comment définir un UISwitch de manière programmatique

Je veux régler mon UISwitch sur on ou off de manière programmée. Comment puis-je faire ça ? Je suis nouveau sur iOS.

201voto

Andrew_L Points 1222

Si vous utilisez un UISwitch, alors comme mentionné dans l'API du développeur, la tâche setOn: animated: devrait faire l'affaire.

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

Donc pour activer l'interrupteur dans votre programme, vous utiliseriez :

Objective-C

[switchName setOn:YES animated:YES];

Swift

switchName.setOn(true, animated: true)

25voto

NWCoder Points 4469

Les UISwitches ont une propriété appelée "on" qui doit être définie.

Parlez-vous d'une application iOS ou d'un site web mobile ?

10voto

Utilisez ce code pour résoudre le problème d'état marche/arrêt dans un interrupteur sur iOS

- (IBAction)btnSwitched:(id)sender {
    UISwitch *switchObject = (UISwitch *)sender;
    if(switchObject.isOn){
        self.lblShow.text=@"L'état de l'interrupteur est désactivé";
    }else{
        self.lblShow.text=@"L'état de l'interrupteur est activé";
    }

0 votes

Upvoté pour cette ligne : UISwitch *switchObject = (UISwitch *)sender;

2voto

Mike Critchley Points 11

J'utilise également la méthode setOn:animated: pour cela et ça fonctionne bien. Voici le code que j'utilise dans la méthode viewDidLoad d'une application pour basculer un UISwitch en code afin qu'il se charge préconfiguré.

// Vérifiez le statut de l'autoPlaySetting
BOOL autoPlayOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoPlay"];

[self.autoplaySwitch setOn:autoPlayOn animated:NO];

1voto

Acharya Ronak Points 41

ViewController.h

- (IBAction)switchAction:(id)sender;
@property (strong, nonatomic) IBOutlet UILabel *lbl;

ViewController.m

- (IBAction)switchAction:(id)sender {

    UISwitch *mySwitch = (UISwitch *)sender;

    if ([mySwitch isOn]) {
        self.lbl.backgroundColor = [UIColor redColor];
    } else {
        self.lbl.backgroundColor = [UIColor blueColor];   
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X