Was wird aufgerufen, wenn sich ein UISlider-Wert ändert?


71

Bekommt ein Verfahren , wenn ein namens UISlider‚s valueändert? Ich möchte einen Wert basierend auf dem UISlidersWert aktualisieren können, aber nur, wenn er sich ändert ...

Vielen Dank für jede Hilfe.

Antworten:


172

In IB, können Sie einen Haken IBActionan dem Value Changed eventoder in Code Add Ziel / Aktion für UIControlEventValueChanged. Zum Beispiel:

[mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];

- (IBAction)sliderValueChanged:(UISlider *)sender {
    NSLog(@"slider value = %f", sender.value);
}

Beachten Sie, dass , wenn Sie die Wertänderungsereignisse wollen , wenn der Benutzer ist sliding, dann sicher sein , dass die slider‚s continuous propertyauch gesetzt ist. Wenn Sie jedoch nicht möchten, dass das Ereignis so slidingausgelöst wird, wie es der Benutzer ist, und erst dann, wenn das Gleiten beendet ist, setzen Sie fortlaufend auf NEIN (oder deaktivieren Sie in IB).


7

Für Swift 3

//There is your slider
@IBOutlet weak var mSlider: UISlider!

//add a target on your slider on your viewDidLoad for example
self.mSlider.addTarget(self, action: #selector(MyClass.onLuminosityChange), for: UIControlEvents.valueChanged)

//callback called when value change
func onLuminosityChange(){
    let value = self.mSlider.value
}

0
ViewController.h

@property (strong, nonatomic) IBOutlet UIProgressView *prgs;

- (IBAction)slider:(id)sender;

@property (strong, nonatomic) IBOutlet UISlider *slider1;

@property (strong, nonatomic) IBOutlet UILabel *lbl;


ViewController.m

- (IBAction)slider:(id)sender 
{

    self.prgs.progress=self.slider1.value;

    self.lbl.text = [NSString stringWithFormat:@"%f", 
self.slider1.value];

}

1
Hallo Acharya, willkommen bei SO und danke für deine Antwort. Können Sie bitte Ihre Antwort bearbeiten, um zu beschreiben, wie dies das Problem des OP löst? Von Nur-Code-Antworten wird hier abgeraten. Vielen Dank!
Tim Malone
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.