iOS - So stellen Sie einen UISwitch programmgesteuert ein

104

Ich möchte meinen UISwitch programmgesteuert ein- oder ausschalten. Wie würde ich das machen? Ich bin ein iOS-Neuling.

Suchi
quelle

Antworten:

195

Wenn Sie einen UISwitch verwenden, setOn: animated:sollte die Aufgabe, wie in der Entwickler-API angezeigt, den Trick ausführen .

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

Um den Schalter in Ihrem Programm einzuschalten, würden Sie Folgendes verwenden:

Ziel c

[switchName setOn:YES animated:YES];

Schnell

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

UISwitches haben eine Eigenschaft namens "on", die festgelegt werden sollte.

Sprechen Sie über eine iOS-App oder eine mobile Website?

NWCoder
quelle
10

Verwenden Sie diesen Code, um das Ein / Aus-Statusproblem beim Umschalten in iOS zu lösen

- (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
quelle
Upvoted für diese Zeile:UISwitch *switchObject = (UISwitch *)sender;
Benutzer, der kein Benutzer ist
2

Ich benutze das auch setOn:animated:dafür und es funktioniert gut. Dies ist der Code, den ich in einer App verwende, viewDidLoadum einen UISwitchIn-Code so umzuschalten, dass er die Voreinstellung lädt.

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

[self.autoplaySwitch setOn:autoPlayOn animated:NO];
Mike Critchley
quelle
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
quelle