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.

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)

25

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

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


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";
    }                

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];

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];   
    }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.