iOS - Como definir um UISwitch programaticamente

104

Eu quero definir meu UISwitch para ligado ou desligado programaticamente. Como eu faria isso? Eu sou um novato no iOS.

Suchi
fonte

Respostas:

195

Se você estiver usando um UISwitch, conforme visto na API do desenvolvedor, a tarefa setOn: animated:deve funcionar.

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

Portanto, para definir a chave ON em seu programa, você usaria:

Objective-C

[switchName setOn:YES animated:YES];

Rápido

switchName.setOn(true, animated: true)
Andrew_L
fonte
25

UISwitches tem uma propriedade chamada "on" que deve ser definida.

Você está falando sobre um aplicativo iOS ou um site móvel?

NWCoder
fonte
10

Use este código para resolver o problema de estado ligado / desligado na chave no iOS

- (IBAction)btnSwitched:(id)sender {
    UISwitch *switchObject = (UISwitch *)sender;
    if(switchObject.isOn){
        self.lblShow.text=@"Switch State is Disabled";
    }else{
        self.lblShow.text=@"Switch State is Enabled";
    }                
Anand Kr. Avasthi
fonte
Votos positivos para esta linha:UISwitch *switchObject = (UISwitch *)sender;
Usuário que não é um usuário
2

Eu também uso o setOn:animated:para isso e funciona bem. Este é o código que uso em um aplicativo viewDidLoadpara alternar entre um UISwitchcódigo e carregá-lo.

// Check the status of the autoPlaySetting
BOOL autoPlayOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoPlay"];

[self.autoplaySwitch setOn:autoPlayOn animated:NO];
Mike Critchley
fonte
0

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];   
    }
}
Acharya Ronak
fonte